假设我有一张表:
user_id | log_id | action_id ############################ 191 | 11111 | 1 191 | 11111 | 2 191 | 11111 | 3 191 | 11111 | 999 191 | 22222 | 4 191 | 22222 | 5 191 | 22222 | 6 191 | 33333 | 7 191 | 33333 | 8 191 | 33333 | 9 191 | 33333 | 999 191 | 44444 | 10 191 | 44444 | 11 191 | 44444 | 12 ...... ...... ......
我想要一个像这样的结果,action_id = 999以及所有其他具有相同log_id的行:
user_id | log_id | action_id ############################ 191 | 11111 | 1 191 | 11111 | 2 191 | 11111 | 3 191 | 11111 | 999 191 | 33333 | 7 191 | 33333 | 8 191 | 33333 | 9 191 | 33333 | 999 ...... ......
答案 0 :(得分:1)
子选择应该这样做,
SELECT * FROM table WHERE log_id IN ( SELECT log_id FROM table WHERE action_id = 999);
答案 1 :(得分:0)
SELECT * FROM table_name WHERE log_id IN(SELECT log_id FROM table_name WHERE action_id = 999)
答案 2 :(得分:0)
试试这种方式
SELECT a.* FROM table as a
join ( SELECT log_id FROM table WHERE action_id = 999 ) b on a.log_id=b.log_id