我看起來像這樣的兩個表:MySQL的JOIN,中頻查詢
SalesPeople
-----------
SalesID, FirstName, LastName, Supervisor
Members
-------
MemberID, Firstname, LastName, Region, SalesID
在試圖展現每一個銷售人員的ID和成員,他們被分配。我寫了下面的SQL查詢:
SELECT s.*
FROM salespeople s
INNER JOIN members m ON s.salesid = m.salesid
然而,如果銷售人員沒有分配給我需要說的任何成員,「沒有成員分配」爲輸出。我也想將MemberID列標記爲'客戶'。
上面的代碼工作,但是當我嘗試標記成員MEMBERID列「客戶」我得到一個錯誤:
SELECT s.*
FROM salespeople s
INNER JOIN members m AS Clients ON s.salesid = m.salesid
同樣,我的問題是:
如何顯示銷售人員的SalesID
和MemberID
相匹配。如果銷售人員沒有分配給任何成員,則只需顯示它:「沒有成員分配」。如上所述,我需要將顯示MemberID
列的列標爲Clients
。
如果這讓我感到困惑,我很樂意澄清。
查看'left join' – Laurence
左連接與內連接不同,因爲它只會給我們與銷售人員匹配的成員(在本例中)。 – cryptomath
@cryptomath不,「LEFT JOIN」會向您顯示所有銷售人員,而那些在'members'中沒有匹配的人將具有'members'列的NULL值。然後這是一個使用類似於'CASE WHEN Members.MemberID IS NULL THEN'沒有成員分配'ELSE MemberID END AS客戶端' –