SELECT *
FROM Activity AA
WHERE AA.act_id IN
((SELECT A.act_id
FROM Activity A
WHERE A.user_id = 'lhfcws')
UNION
(SELECT J.act_id
FROM Joinin J
WHERE J.user_id = 'lhfcws'))
ORDER BY AA.act_time
Run Code Online (Sandbox Code Playgroud)
错误消息:#1064 - 您的SQL语法出错; 查看与您的MySQL服务器版本对应的手册,以便在附近使用正确的语法
'UNION (SELECT J.act_id FROM Joinin J WHERE J.user_id = 'lhfcws')) ORDE' at line 7
Activity(act_id,user_id,act_name)
Joinin(act_id,user_id)
您的错误的原因是select语句周围的parens.你应该把它写成:
SELECT *
FROM Activity AA
WHERE AA.act_id IN
(SELECT A.act_id
FROM Activity A
WHERE A.user_id = 'lhfcws'
UNION
SELECT J.act_id
FROM Joinin J
WHERE J.user_id = 'lhfcws')
ORDER BY AA.act_time
Run Code Online (Sandbox Code Playgroud)
但请查看@RaphaëlAlthaus提出的改进查询的想法.
嗯,不认为你需要这样的子查询
select * from Activity a
where a.user_id = 'lhfcws'
and exists (select null from Joinin j
where a.user_id = j.user_id);
Run Code Online (Sandbox Code Playgroud)
也会做同样的事
也许你还需要一张支票
select * from Activity a
where a.user_id = 'lhfcws'
and exists (select null from Joinin j
where a.user_id = j.user_id
and a.act_id = j.act_id);
Run Code Online (Sandbox Code Playgroud)
根据@Jonathan Leffler 的(真实)评论
select * from Activity a
where a.user_id = 'lhfcws'
or exists (select null from Joinin j
where j.user_id = 'lhfcws'
and a.act_id = j.act_id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5081 次 |
| 最近记录: |