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)
我需要像这样的反应,如果我的用户是“用户ID = 17”和我的朋友用户33用户25而不是朋友:
{ "message": "hello", "userid": "25", "isFromFriend" = "true" }
{ "message": "hi!!!!", "userid": "33", "isFromFriend" = "false" }
我的问题是与SELECT isFromFriend场,我不想重复查询仅两次改变NOT IN并在WHERE因为真正的查询太大。
那是很难理解你是什么之后,这将是更好,如果你提供一些示例数据和预期的结果了这些样本数据。 –
你说得对,我编辑了第一篇文章。 –
但没有好处。相反,如果您愿意,可以考虑遵循以下简单的两步操作:1.如果您尚未这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相对应的所需结果集。 – Strawberry