2013-12-14 23 views
-3

讓說,我們已經兩個表如下如何MySQL的選擇使用,其中未發現

Users

+----+----------+-------+ 
| id | username | email | 
+----+----------+-------+ 
| 1 | user1 | mail1 | 
| 2 | user2 | mail2 | 
| 3 | user3 | mail3 | 
| 4 | user4 | mail4 | 
+----+----------+-------+ 

sales

+----+----------+-------+ 
| id | username | email | 
+----+----------+-------+ 
| 1 | user1 | mail1 | 
| 2 | user3 | mail3 | 
+----+----------+-------+ 

我想打印的users,其中電子郵件他們的用戶名不在sales表中,如果我想說從users選擇電子郵件,其中username在表中找不到sales

輸出應該是這樣的

email2 
email4 

請注意,我usring MySQL的〜謝謝

+1

我希望人們用 「希望」,而不是想.... – webnoob

+0

我一直在尋找使用'LEFT JOIN'怎麼可能在這個例子中 –

+0

@webnoob我完全同意,但我更願意看到的是:「這就是我所嘗試過的,我被這個代碼的特定部分卡住了,因爲X」而不是「這裏是我的要求給我給我給我」。 – PeeHaa

回答

6

有關於這個問題許多可能的解決方案。一種是通過使用LEFT JOIN。任何在右側Sales)表上沒有匹配記錄的記錄在其可以過濾的列上將具有值null

SELECT a.email 
FROM Users a 
     LEFT JOIN Sales b 
      ON a.username = b.username 
WHERE b.username IS NULL 
+0

謝謝,作品完美,我並不理解非常以及LEFT JOIN如何工作..還要感謝SQLFiddel以前從未知道它......這對測試和審查來說非常棒。 –

1
select users.* from users left join sales on sales.username = users.username 
where sales.username is null