Theres лучший способ сделать такой запрос? (Это псевдокод) Я не знаю, если синтаксис это хорошо, но это идея:Theres лучший способ сделать такой запрос?
SELECT S.*, isFromFriend = true
FROM messages AS S
WHERE id IN (SELECT id FROM friends)
UNION ALL
SELECT S.*, isFromFriend = false
FROM messages AS S
WHERE S.id NOT IN (SELECT id FROM friends)
мне нужно что-то вроде этого на ответ, если мой пользователь «идентификатор = 17» и я друг пользователь 25, но не друг пользователя 33:
{ "message": "hello", "userid": "25", "isFromFriend" = "true" }
{ "message": "hi!!!!", "userid": "33", "isFromFriend" = "false" }
Моя проблема с поля ВЫБРАТЬ isFromFriend, я не хочу, чтобы дублировать запрос только в два раза, изменяющий NOT IN и IN на WHERE, так как реальные запрос слишком велик.
То трудно понять, что вы после этого, было бы лучше, если бы вы предоставить некоторые выборочные данные и ожидаемый результат из этих выборок данных. –
Вы правы, я отредактировал первое сообщение. –
Но не выгодно. Вместо этого, если хотите, рассмотрите следующий простой двухэтапный курс действий: 1. Если вы еще этого не сделали, укажите надлежащие DDL (и/или sqlfiddle), чтобы мы могли более легко реплицировать проблему. 2. Если вы еще этого не сделали, укажите желаемый набор результатов, соответствующий информации, представленной на шаге 1. – Strawberry