Ý bạn là như thế này:
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
Đầu ra sẽ như sau:
project_id | list_id | item_id
1 | 5 | 45
1 | 5 | 46
1 | 8 | 12
Hay bạn muốn trả lại tất cả các phần của nó trong một hàng duy nhất?
Nếu bạn muốn có một hàng duy nhất, bạn có thể làm điều gì đó dọc theo các dòng:
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
Nhưng nó sẽ trở nên lộn xộn hơn trong PHP khi xử lý tất cả những thứ được nhóm lại.
Đầu ra sẽ như sau:
project_id | list_id | item_id
1 | 5,8 | 45, 46, 12
Bạn cũng có thể trộn và kết hợp cả hai để có thể tận dụng tối đa cả hai thế giới:
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
Đầu ra sẽ như sau:
project_id | list_id | item_id
1 | 5 | 45, 46
1 | 8 | 12