я есть этот SQL запрос на выборкуMysql и если/другое заявление в ИНЕКЕ
SELECT *
FROM bots
WHERE id NOT IN (select botid
from messages
where messages.recipient = :recipient)
limit 1
и мне нужно сделать что-то вроде этого:
SELECT *
FROM bots
[if isset(recipient = $recipient AND sender = $sender)]
WHERE id IN (select botid
from messages
where messages.recipient = :recipient and sender = :sender)
else
WHERE id NOT IN (select botid
from messages
where messages.recipient = :recipient)
limit 1
[] - псевдокод
Как сделать этот запрос?
Бот стол:
-------------------------------------------------------
| id | auth_token | messages_today | vkid |
-------------------------------------------------------
| 1 | token | 0 | 2323 |
-------------------------------------------------------
| 2 | token | 0 | 2343 |
-------------------------------------------------------
Сообщение таблица:
-----------------------------------------------------------
| id | recipient | sender | botid | messageid |
-----------------------------------------------------------
| 1 | 12 | 1 | 1 | 3322 |
-----------------------------------------------------------
| 2 | 12 | 2 | 2 | 332123 |
-----------------------------------------------------------
| 3 | 13 | 1 | 1 | 332123 |
-----------------------------------------------------------
Вашего псевдокода, это неясно, как вы хотите применить это условие. Как правило, можно работать с такими условиями (основанными на наличии/отсутствии входных значений) непосредственно в предложении 'WHERE', с тщательной логикой'() 'и' AND/OR'. –
вы хотите, чтобы все боты (список A), а если нет в списке A, убедитесь, что они не в списке (список B)? – xQbert
@xQbert Я хочу получить все боты, которые ничего не отправили этому получателю, если наш отправитель! = Отправитель, для этого у меня есть таблицы ботов и сообщений. –