Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t进程MySQL完全连接查询_Mysql_Sql_Database - Fatal编程技术网

Can';t进程MySQL完全连接查询

Can';t进程MySQL完全连接查询,mysql,sql,database,Mysql,Sql,Database,我想完全连接以下两个表 表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 我使

我想
完全连接
以下两个表

表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
但这会产生一个错误

“字段列表”中的未知列“Persons.Name”

MySQL服务器版本是5.5.19,我在MicrosoftWindows7中使用了命令行客户端

内部联接、右联接和左联接对我有效,但我不能执行完全联接。有什么错误请告诉我我还是个学生。我如何在这里执行完全联接


谢谢大家!

为了在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

看看这里,使用两个表的左连接和右连接的并集解决了这个问题。谢谢@LolCoder不,我以前使用all
LEFT
join而不是LEFT和right join。请参见柱的互换<代码>:D