我有这个SQL查询的问题:
SELECT user_id, scrap_id, scrap_text, profile_id, add_date
FROM scraps
WHERE profile_id=52 AND user_id=68 OR user_id
IN(
SELECT user_id
FROM profilecontact
WHERE owner_id=68 AND profile_id=52
);
Run Code Online (Sandbox Code Playgroud)
这个查询的问题是这个OR运算符进入的部分.我需要SQL以下面的方式思考:
profile_id=52 <- This one should always be followed
user_id=68 OR user_id IN... <- The result may have user_id 68 OR a user_id that the sub query finds.
Run Code Online (Sandbox Code Playgroud)
SQL现在做的是它完全忽略了这一部分:
profile_id=52 AND user_id=68
Run Code Online (Sandbox Code Playgroud)
如何以我需要的方式使用OR和AND运算符?
您只需要用括号组织标准.
试试这个:
SELECT user_id, scrap_id, scrap_text, profile_id, add_date
FROM scraps
WHERE profile_id=52 AND (user_id=68 OR user_id
IN(
SELECT user_id
FROM profilecontact
WHERE owner_id=68 AND profile_id=52
));
Run Code Online (Sandbox Code Playgroud)
这会将user_id条件视为单个元素,将profile_id视为另一个元素,将AND它们组合在一起.
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |