簡體   English   中英

如何跨多個具有相同 ID 的 MySQL 表選擇數據

[英]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 ,每行中的item1item2之一似乎是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM