MySQL 具有特定条件的自连接
MySQL Self Join with a specific condition
我的问题是,我有一个相对较大的 table(约 200 万行)。
Table 就像;
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
在table中,如果有FOP但没有日期(Date=NULL),表示用户活跃。我正在寻找不活跃的用户,所以我不希望有一个拥有日期 = NULL 的 FOP 的用户。如果有 POP,我们必须有约会。
具体来说,在我的例子中,FOP 的数量应该等于 POP 的数量。
例如:在我们的例子中,我只想获取 usery 和 usert 的信息。
我没有有效地加入这个table。因为table真的很大。
感谢您的想法。
您需要一些代码来从 x 获取所有信息,但在后台所以您的想法?
应该这样做
SELECT *
FROM table
WHERE action = POP
AND user_id NOT IN (SELECT user_id FROM table WHEREdate = NULL)
我的问题是,我有一个相对较大的 table(约 200 万行)。
Table 就像;
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
在table中,如果有FOP但没有日期(Date=NULL),表示用户活跃。我正在寻找不活跃的用户,所以我不希望有一个拥有日期 = NULL 的 FOP 的用户。如果有 POP,我们必须有约会。
具体来说,在我的例子中,FOP 的数量应该等于 POP 的数量。
例如:在我们的例子中,我只想获取 usery 和 usert 的信息。
我没有有效地加入这个table。因为table真的很大。
感谢您的想法。
您需要一些代码来从 x 获取所有信息,但在后台所以您的想法?
应该这样做
SELECT *
FROM table
WHERE action = POP
AND user_id NOT IN (SELECT user_id FROM table WHEREdate = NULL)