在结果集中使用条件联接查找两个表的所有数据

时间:2018-07-02 07:21:09

标签: mysql

我想在一个查询中找到结果

packages table

id | name   |

1    Silver 

2    Gold

3   Platinum

user_package table

uid| pid| is_active

1     1    1

现在我需要使用user_package查找所有软件包的详细信息,也就是说,这里用户1已获取软件包1

uid|pid|is_active|name

 1  1        1    Silver
null 2      null   Gold
null 3      null  Platinum

我使用了左联接,但只得到一个结果。

select user_package.* , packages.name 
from packages 
left join user_package on user_package.pid = packages.id 
where user_package.uid=1;

但是我只得到一个结果集。预先感谢您的反馈,建议和帮助。

2 个答案:

答案 0 :(得分:0)

您的where子句将您的左联接变为内部联接,因此您将从php composer.phar require slim/slim "^3.0"表中获得数据,其中packages中存在相关数据,如果需要所有程序包详细信息,无论它们是否在{中都有相关记录是否{1}},然后将user_package子句中的where条件作为附加条件移动到user_package

的行中
on

Demo

答案 1 :(得分:0)

这只是一个结果,因为您指定了on user_package.pid = packages.id,并且在表user_package中只有一条记录。

您可以根据需要在表user_package中添加虚拟记录