Gra*_*ant 2 mysql sql database
我想FULL JOIN跟随两张桌子
表1:人员
P_Id Name
1 A
2 B
3 C
4 D
5 E
Run Code Online (Sandbox Code Playgroud)
表2:发票
Id P_Id
111 3
112 3
113 1
114 1
115 15
Run Code Online (Sandbox Code Playgroud)
我用过这个查询:
SELECT Persons.Name, Persons.P_Id, Invoice.Id
FROM Persons
FULL JOIN Invoice
ON Persons.P_Id=Invoice.P_Id
ORDER BY Persons.Name
Run Code Online (Sandbox Code Playgroud)
但这会产生错误
"字段列表"中的未知列"Persons.Name"
MySQL服务器版本是5.5.19,我使用Microsoft Windows7中的命令行客户端
INNER JOIN,RIGHT JOIN和LEFT JOIN为我工作,但我无法执行FULL JOIN.什么是错误,请告诉我,我还是学生.我怎样才能在这里进行全加入?
谢谢!
为了FULL JOIN在mysql 中进行模拟,您需要UNION从两个表中获得右连接和左连接的结果
SELECT Persons.Name, Persons.P_Id, Invoice.Id
FROM Persons
LEFT JOIN Invoice
ON Persons.P_Id=Invoice.P_Id
UNION
SELECT Persons.Name, Persons.P_Id, Invoice.Id
FROM Invoice
LEFT JOIN Persons
ON Persons.P_Id=Invoice.P_Id
Run Code Online (Sandbox Code Playgroud)