1

私は仕事中のプロジェクトに取り組んでおり、2つのテーブルからのデータが必要です。私はMySQLクエリの専門家ではありませんが、ここまでは次のようになりました。

SELECT *
FROM `p_list` AS pl
JOIN `employee` AS em
WHERE em.id =10
AND pl.employee_id =10

pl.employee_idがある場合は正常に機能しますが、ない場合は結果を返します。それは理にかなっていますが、em.id = 10の場所で、pl.employee_idが設定されている場合にどのように返すことができるのかわかりません。

私はあきらめて2つのクエリを実行し、PHPに汚い仕事をさせようとしています。

4

2 に答える 2

1

これを試して、使用LEFT JOIN

SELECT *
FROM   `p_list` AS pl
       LEFT JOIN `employee` AS em
          ON em.id = pl.employee_ID
WHERE  em.id = 10

基本的に、あなたが今していることはですINNER JOIN。(必要なものです)とINNER JOINは異なります。結合条件で指定されたレコードが他のテーブルで少なくとも1つ一致する場合にのみ、結果を返します。一方、は、他のテーブルで一致するか一致しないかに関係なく、 LEFTテーブルで指定されたすべての行を返します。LEFT JOININNER JOINLEFT JOIN

于 2012-11-15T23:56:27.770 に答える
0

これを行うには、左結合を使用できます。

SELECT *
FROM `p_list` AS pl
LEFT JOIN `employee` AS em ON em.id = pl.employee_id
WHERE em.id =10
于 2012-11-15T23:56:40.070 に答える