具有特定条件的MySQL自连接

具有特定条件的MySQL自连接,mysql,join,optimization,self-join,Mysql,Join,Optimization,Self Join,我的问题是,我有一个相对较大的表(约200万行) 桌子是这样的 id Action user_id Date ----------------------------------- 1 FOP userx date1 2 POP userx date2 3 FOP userx NULL 4 FOP usery date4 5

我的问题是,我有一个相对较大的表(约200万行)

桌子是这样的

id    Action   user_id        Date
-----------------------------------
1      FOP      userx        date1
2      POP      userx        date2
3      FOP      userx         NULL 
4      FOP      usery        date4
5      POP      usery        date5
6      FOP      userz        date6
7      POP      userz        date7
8      FOP      userz         NULL
9      FOP      usert        date9
10     POP      usert        date10
11     FOP      usert        date11
12     POP      usert        date12
在表中,若有FOP且并没有日期(日期=NULL),则表示用户处于活动状态。我正在寻找非活动用户,所以我不希望有一个用户的FOP日期为空。如果有流行音乐,我们必须有个约会

具体来说,在我的例子中,FOP的数量应该等于POP的数量

例如:在我们的例子中,我只想得到usery和usert的信息

我没有有效地加入这张桌子。因为桌子真的很大


谢谢你的想法

你需要一些代码来从x获取所有信息,但要在后台,这样你的大脑才能正常工作?

这应该可以

SELECT *
FROM table
WHERE action = POP
AND user_id NOT IN (SELECT user_id FROM table WHEREdate = NULL)

Kimaldii没有问题,如果这个答案是你的问题的解决方案,请考虑接受它作为正确的答案。