你的意思是這樣的:
select
a.project_id,
b.list_id,
c.item_id
from
projects a
join lists b
on a.project_id=b.project_id
join items c
on b.list_id=c.list_id
輸出將是這樣的:
project_id | list_id | item_id
1 | 5 | 45
1 | 5 | 46
1 | 8 | 12
還是你想返回它的所有部件在單行?
如果你想有一個單列,你可以做線沿線的東西:
select
a.project_id,
group_concat(b.list_id) as listIDs,
group_concat(c.item_id) as itemIDs
from
projects a
join lists b
on a.project_id=b.project_id
join items c
on b.list_id=c.list_id
但它會在PHP中得到梅西耶處理所有的分組東西。
輸出將是這樣的:
project_id | list_id | item_id
1 | 5,8 | 45, 46, 12
你也可以混合和匹配的兩到可能得到兩全其美的:
select
a.project_id,
b.list_id as listIDs,
group_concat(c.item_id) as itemIDs
from
projects a
join lists b
on a.project_id=b.project_id
join items c
on b.list_id=c.list_id
輸出將是這樣的:
project_id | list_id | item_id
1 | 5 | 45, 46
1 | 8 | 12
嗯,是的,我認爲是。我希望能夠將所有這些數據發送到視圖。 – Kristian 2012-08-04 06:49:52
@Kristian不,你在單行中只有少量冗餘數據,但是你必須在PHP中做更多的詭計才能將它們全部分離出來。我正在考慮諸如'group_concat()'之類的東西來將所有項目放在一起。 – Fluffeh 2012-08-04 06:51:18
感謝兄弟。好的,我只是更新了我的問題,在得到兩個回覆之後我意識到,我應該說我需要整個行。但我認爲這是不可能的,當行不真正匹配關鍵字,對不對? – Kristian 2012-08-04 06:54:03