PHP MYSQL два SELECT основываясь на первом значении

297
21 января 2018, 01:50

Есть таблица chats, в ней поля id, lastupdate. Так же есть таблица members, в ней поля chatid, userid, lastvisit.

Первый запрос является таковым:

SELECT  m.chatid, m.userid, c.lastupdate FROM chat1.members m, chat1.chats c 
WHERE  m.chatid IN 
(SELECT chatid FROM chat1.members WHERE userid = ?i) AND c.id = m.chatid 
AND m.userid <> ?i

При помощи него, делается выборка записей, где chatid равен тому же значению что и chatid нашего пользователя (см. IN SELECT). Далее в WHERE, мы указываем что выбирать данные нужно там, где userid не равен нашему, то есть получаем данные второго участника чата.

Далее я бы хотел сравнить значения поля c.lastupdate (последнее обновление чата) с последним нашим посещением чата (поле lastvisit, в таблице members m.)

Но дело в том, что в первом запросе вы выбрали данные другого участника нашего чата, и получается что нужно делать новый запрос, дабы выбрать теперь наши данные:

SELECT lastvisit FROM chat1.members WHERE chatid = ?i AND userid = ?i

И в конце концов у меня появляется вопрос, возможно ли эти запросы объеденить? Я пробовал делать так:

SELECT  m.chatid, m.userid, c.lastupdate FROM chat1.members m, chat1.chats c 
WHERE  m.chatid IN (SELECT chatid FROM chat1.members WHERE userid = ?i) AND c.id = m.chatid 
AND m.userid <> ?i 
UNION SELECT lastvisit FROM chat1.members WHERE chatid = m.chatid AND userid = ?i

Но дело в том что UNION запрос не может распознать m.chatid

READ ALSO
MySQL UPDATE if this rows exists

MySQL UPDATE if this rows exists

Доброго времени суток

237
TreeView и MSSQL по нескольким таблицам (WinForms, c#)

TreeView и MSSQL по нескольким таблицам (WinForms, c#)

Бьюсь уже долгое время, но, увы, хорошего примера и рабочего кода не нашелИли не понимаю смысл чтения из бд в Treeview) прошу помощи

288
Обмен данными по ModBus

Обмен данными по ModBus

Добрый день!

239
Как открыть окно чата в telegram?

Как открыть окно чата в telegram?

Есть приложение написанное на xamarinВ приложении есть список контактов

302