簡體   English   中英

MySQL SELECT從特定日期開始記錄不存在

[英]MySQL SELECT records NOT EXISTS from specific date

我有兩個表:

USERS

1. id
2. name
3. surname
4. email

訂票

1. id
2. id_user
3. film
4. date_selling

我想列出自特定日期以來所有未購買門票的用戶。

我嘗試了很多組合,但是找不到正確的方法來達到結果。

查詢1:

SELECT u.* 
FROM users u 
LEFT JOIN tickets t ON t.id_user = u.id
WHERE t.date_selling >= "2019-01-01" 
GROUP BY u.id HAVING COUNT(t.id) = 0;

查詢2:

SELECT u.* 
FROM users u 
WHERE (NOT EXISTS(
SELECT 1 
FROM tickets t 
WHERE t.id_user = u.id AND t.date_selling >= "2019-01-01"));

您需要一個WHERE子句:

SELECT u.* FROM users u 
WHERE NOT EXISTS(
  SELECT 1 FROM tickets t 
  WHERE t.id_user = u.id AND t.date_selling >= '2019-01-01'
);

或使用左聯接:

SELECT u.* 
FROM users u LEFT JOIN tickets t 
ON t.id_user = u.id AND t.date_selling >= '2019-01-01' 
WHERE t.id_user IS NULL;

暫無
暫無

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

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