Привет, мне нужно выбрать некоторые почтовые адреса пользователей, и я не понимаю, как это сделать.MySQL должен ли я использовать ГДЕ НЕ СУЩЕСТВУЕТ?
У меня есть 3 стола.
Пользователи, оплаты и код
Когда один пользователь заплатил (Whithout код), линия, это добавить в Payement таблицы и у нас есть что-то вроде
<strong>Payement Table</strong>
+----+--------+--------+--------+
| Id | UserId | Amount | CodeId |
+----+--------+--------+--------+
| 01 | 2545 | 20 | 0 |
+----+--------+--------+--------+
If тот же пользователь заплатил с кодом сейчас
<strong>Payement Table</strong>
+----+--------+--------+--------+
| Id | UserId | Amount | CodeId |
+----+--------+--------+--------+
| 01 | 2545 | 20 | 0 |
| 02 | 2545 | 5 | 42 |
+----+--------+--------+--------+
Я хочу, чтобы все мои клиенты, которые уже заплатили, но не клиенты, которые уже используют код (CodeId = 42 в этом случае).
Так что я попытался это
SELECT mail
FROM User "
INNER JOIN payement ON User.id = payement.UserId
WHERE payement.CodeId<>42
AND payement.amount>0
GROUP BY mail
Моей проблема:
Я до сих пор есть клиент, который использует код с этой просьбой. Кажется, я знаю, почему. Но следует ли использовать ГДЕ НЕ СУЩЕСТВУЕТ? Как ?
Можете ли вы предоставить схему других таблиц. – RRajani
sql должен работать нормально. Он не должен возвращать какой-либо CodeId с 42. –
@LuudvanKeulen также будет возвращать Клиента с другими, чем 42 CodeId.Means CodeId = 0,1,2 .., 40,41,43,44 .. –