我正在尝试查找一个返回所有人的查询,包括他们所属的公司以及尚未分配任何人员的公司。
公司
cid | cname
--------------
1 Company 1
2 Company 2
人
pid | pname | fk_company
---------------------------
1 Person 1 1
2 Person 2 1
期望的结果
pid | pname | fk_company | cid | cname
----------------------------------------------
1 Person 1 1 1 Company 1
2 Person 2 1 1 Company 1
NULL NULL NULL 2 Company 2
提前致谢
答案 0 :(得分:1)
如果您想要两个表中的所有内容,无论左右匹配,您都需要一个完整的联接:
SELECT *
FROM person
FULL JOIN company
ON person.fk_company = company.cid
编辑:显然mysql不支持FULL JOIN
。您必须手动执行LEFT JOINS
和UNION ALL
。
答案 1 :(得分:0)
你应该提一下你尝试过的东西。无论如何,我将解释这个方法,以便你可以解决它。
SELECT <column_names>FROM <table1_name> LEFT JOIN <table2_name>ON
<table1.column_name> = <table2.column_name>;
有关详细说明,请参阅此链接。 SQL Left Join