2

FULL JOIN2つのテーブルをフォローしたい

表 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 で、Microsoft Windows7 でコマンド ライン クライアントを使用しました。

INNER JOIN、RIGHT JOIN、LEFT JOIN は機能しましたが、FULL JOIN は実行できません。エラーは何ですか?私はまだ学生です。ここで FULL JOIN を実行するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

5

mysql でシミュレートするには、両方のテーブルから Right Join と Left Join の結果がFULL JOIN必要です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
于 2012-11-28T05:15:49.377 に答える