我想在两个表之后FULL JOIN
表 1:人员
P_Id Name
1 A
2 B
3 C
4 D
5 E
表 2:发票
Id P_Id
111 3
112 3
113 1
114 1
115 15
我使用了这个查询:
SELECT Persons.Name, Persons.P_Id, Invoice.Id
FROM Persons
FULL JOIN Invoice
ON Persons.P_Id=Invoice.P_Id
ORDER BY Persons.Name
但这会产生错误
Unknown column 'Persons.Name' in 'Field list'
MySQL 服务器版本是 5.5.19,我在 Microsoft Windows7 中使用命令行客户端
INNER JOIN、RIGHT JOIN 和 LEFT JOIN 对我有用,但我无法执行 FULL JOIN。错误是什么请告诉我我还是个学生。我如何在这里执行 FULL JOIN?
谢谢!
最佳答案
为了在mysql中模拟FULL JOIN
,需要UNION
两张表的Right Join和Left Join的结果
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
关于mysql - 无法处理 MySQL FULL JOIN 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13598221/