2014-09-04 44 views
-1

我可以在MySQL做MySQL的產生更多的行比有

有此表

有4個掛帳有共6 所以第一和第二一個月支付

我想產生類似

id | uid | some date + 3 month 
id | uid | some date + 4 month 
id | uid | some date + 5 month 
id | uid | some date + 6 month 

可以在SQL中完成嗎?

+0

簡答:是的(可能不是一個簡單的方法,但它可以完成)。 [你有沒有嘗試過任何東西?](http://whathaveyoutried.com) – Barranka 2014-09-04 14:37:09

+0

無論你問什麼,我很確定它可以完成,但我不知道你在問什麼 - 基於結果的是什麼上? 4行因爲4筆未付的債務?你怎麼知道哪個月? – 2014-09-04 14:37:24

+0

債務總是在付款最早的月份支付,並且是4行b/c 4未付債務 – Rmxhaha 2014-09-04 14:43:25

回答

0

如果unpaid_debt的數量是有限的(例如,最多12或24個月,甚至100個月),您可以定義第二個表爲id = 1,2,3,4,5 ...然後加入主表使用條件爲「... WHERE table_2.id < = n_unpaid_debt」的table_2。例如:

SELECT t1.id,t1.uid,DATE_ADD(t1.start_date,INTERVAL t2.id MONTH)FROM table_1 t1,table_2 t2 WHERE t2.id < = t1.n_unpaid_debt;

+0

這種解決方案似乎多餘。不是我正在尋找的東西。在php中做這個比做這個更好 – Rmxhaha 2014-09-04 15:28:36

+0

@Rmxhaha如果你可以在你的前端做到這一點,我認爲這比用「純粹」的sql來做更好。sql – Barranka 2014-09-04 18:35:03

+0

如果SQL(沒有使用遊標或類似的循環),我總是喜歡它。但是,這取決於個人喜好。 – i486 2014-09-05 07:38:03