簡體   English   中英

從兩個表中共同獲取數據,並從表A中獲取所有行

[英]getting datafrom two tables collectively and get all the rows from table A

我有兩個表,我希望從這些表中將這些行集中起來。 表a是這樣的

id a_name image      category
1  name1  image1.png  cate1
2  name2  image2.png  cate2
3  name3  image3.png  cate3
4  name4  image4.png  cate3
5  name5  image5.png  cate1
6  name6  image6.png  cate2
7  name7  image7.png  cate3
8  name8  image8.png  cate1

和一個像這樣的表b(a_id是上面任何表行的ID)

id user_id  a_id email amount   code  active
1   123       2    s@s    23      23ke  1
2   542       1    s@s    23      23ke  1
3   523       2    s@s    23      23ke  1
4   423       6    s@s    23      23ke  1
5   103       5    s@s    23      23ke  1
6   523       5    s@s    23      23ke  0

我想以這樣一種方式聯接兩個表,以便每當我運行查詢時,它都應返回表A與表B聯接的所有行。我使用了聯接,但它僅獲得成功應用聯接的行。 從表b中提取的行也應使用user_id。 例如:如果iam搜索user_id = 523的用戶數據。 那么它應該輸出以下內容。 (id字段來自表a)

 id  a_name image      user_id email amount  code active
 1  name1  image1.png    -       -     -      -      -
 2  name2  image2.png    523    s@s    s@s    23KE   1
 3  name3  image3.png     -      -     -       -     -
 4  name4  image4.png     -      -     -       -     -
 5  name5  image5.png    523     s@s   23     23KE   0
 6  name6  image6.png     -       -    -       -     -
 7  name7  image7.png     -       -    -       -     -
 8  name8  image8.png     -       -    -       -     -

我正在使用mysql。

您必須使用外部聯接,

SELECT * from a LEFT OUTER JOIN b ON a.id = b.a_id AND b.user_id = 523

您似乎想要left join

select a.*, b.*
from a left join
     b
     on a.id = b.a_id and b.user_id = 523;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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