当条件不匹配时如何获得该Id

时间:2017-03-06 10:29:24

标签: mysql

我有一张表T.我们为匹配user_id的特定type = "Red Card"提供了多条记录。我只是希望在整场比赛中从未收到user_Id的{​​{1}}和match_id

根据附表的图像,我将获得输出: 分别为"Red Card"match_id : 3036以及3090user_id 4 enter image description here

6 个答案:

答案 0 :(得分:0)

Select match_id,user_id from T where user_id Not IN (Select user_id from T where type = 'Red Card') as k Group By user_id

上述查询将删除所有拥有红牌的用户,首先从T中选择嵌套查询中有红牌的user_id,然后使用“NOT IN”选择不在嵌套语句中的用户,然后按user_id分组删除重复记录。

答案 1 :(得分:0)

我做这样的事情:

SELECT * FROM T WHERE type <>'Red Card' GROUP BY match_id, user_id

这将选择表格中没有&#34; Red Card&#34;的所有记录。而且group by将为每对情侣/用户提供一条记录

答案 2 :(得分:0)

如果要选择所有字段使用子查询

SELECT DISTINCT  user_id, match_id  from tbl where match_id NOT IN (
    SELECT match_id from tbl where type = 'Red Card' 
    )

答案 3 :(得分:0)

希望这会有所帮助。

SELECT DISTINCT user_id, match_id FROM T WHERE type <> 'Red Card' GROUP BY match_id

由于表格中有重复的user_idmatch_id - s,我使用DISTINCT从表中选择唯一ID。

答案 4 :(得分:0)

SELECT * FROM `T` where not exists (SELECT * FROM `T` where `type`="Red card")

答案 5 :(得分:0)

SELECT MATCH_ID AND USER_ID FROM TABLENAME WHERE TYPE NOT IN('RED CARD')

此查询可能会帮助您