[英]How to select data across multiple MySQL tables with same ID
我創建了兩個表(表 A 和表 B)並嘗試使用 INNER JOIN 兩個表,但即使 ID 相同,結果也會在不同的行中。
$sql = "SELECT * FROM Table A INNER JOIN Table B ON Table A.ID = Table B.ID";
是否有任何 mysql 選擇來提取一行中具有相同 ID 的所有值,如“結果”表中所示? 代碼:
$sql =
"SELECT GROUP_CONCAT(ITEM1), GROUP_CONCAT(ITEM2)
FROM Table A INNER JOIN Table B
ON Table A.ID = Table B.ID
WHERE Table A.ID = Table B.ID ";
您必須group by id, type
並僅對item
列使用group_concat()
。
從您的示例數據item2
,每行中的item1
或item2
之一似乎是null
。
如果是這種情況,那么:
select
a.id, a.type,
group_concat(coalesce(b.item1, b.item2) order by b.sub_id) item
from tablea a inner join tableb b
on b.id = a.id
group by a.id, a.type
請參閱演示。
如果它們都可以為null
或都不為null
:
select
a.id, a.type,
group_concat(concat_ws(',', item1, item2) order by b.sub_id) item
from tablea a inner join tableb b
on b.id = a.id
group by a.id, a.type
請參閱演示。
結果:
| id | type | item |
| --- | --------- | --------------------------- |
| 1 | FRUIT | BANANA,PINEAPPLE,WATERMELON |
| 2 | VEGETABLE | SPINACH,CARROT |
| 3 | MEAT | CHICKEN |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.