Есть таблица 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
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Бьюсь уже долгое время, но, увы, хорошего примера и рабочего кода не нашелИли не понимаю смысл чтения из бд в Treeview) прошу помощи
Есть приложение написанное на xamarinВ приложении есть список контактов