2016-02-01 53 views
1

我想找個誰沒有作出任何命令我怎麼能使用連接查詢找到交集

我的想法是,Get all user ids and substract the unique ids in orders table

我怎麼能轉換它在MySQL查詢語法的用戶。

mysql> select * from users; 
+------+ 
| id | 
+------+ 
| 1 | 
| 2 | 
| 3 | 
+------+ 
3 rows in set (0.00 sec) 

mysql> select * from orders; 
+------+---------+--------+ 
| id | user_id | amount | 
+------+---------+--------+ 
| 1 |  1 | 10.00 | 
| 1 |  2 | 5.00 | 
+------+---------+--------+ 
2 rows in set (0.00 sec) 

回答

1

的想法是要賺一把就走的用戶(左表)和訂單表之間的連接。

然後從這個連接表中,您需要篩選那些沒有任何順序的記錄。所以在這種情況下,orders.id將是NULL。

SELECT 
users.id 
FROM users 
LEFT JOIN orders 
ON users.id = orders.user_id 
WHERE orders.id IS NULL 

視覺理解:

enter image description here

SQL連接解釋的更好here

+0

感謝您的精心探索:) – user3675188

+0

非常歡迎您親愛的! – 1000111

0
select * from users where id not in (select user_id from orders) 
+0

請提供有關此代碼如何解決問題的說明。這將有助於OP從您的答案中學習,並幫助未來的搜索者。 – SnareChops