繁体   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