簡體   English   中英

MySQL查詢WHERE x和是否設置y

[英]MySQL query WHERE x and if set y

我一直在工作一個項目,我需要兩個表中的數據。 我不是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的信息。

我要放棄,只運行兩個查詢,然后讓PHP做臟事。

試試這個,使用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 JOINLEFT JOIN這是您需要的 )不同。 INNER JOIN僅在INNER JOIN條件中指定的記錄在另一張表上至少有一個匹配項時才返回結果。 另一方面LEFT JOIN返回在LEFT表上指定的所有行,無論該表在另一個表上是否匹配。

您可以使用左聯接執行此操作:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM