如何从表中选择信息?

时间:2016-04-12 04:27:48

标签: mysql

假设我有一张表:

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
......
......

3 个答案:

答案 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