あなたはこのように意味します:
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
それとも、そのすべての部分を1行で返したいですか?
単一の行が必要な場合は、次の行に沿って何かを行うことができます:
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
また、2つを組み合わせて、両方の世界を最大限に活用することもできます。
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