我的MySQL数据库中有一个名为Relationships的表,该表的列为follower_id和followed_id。这些代表Instagram上的关注者,例如,如果ID为1的帐户紧随ID为2的帐户,则我的表中将存在一行,其中follower_id为1且followed_id为2。
我想做的是能够找到同时具有ID 1和ID 4的帐户。我曾尝试使用SELECT语句创建临时表,如下所示:
CREATE TEMPORARY TABLE temp1
SELECT follower_id FROM relationships
WHERE followed_id = '1'
和
CREATE TEMPORARY TABLE temp2
SELECT follower_id FROM relationships
WHERE followed_id = '4'
并尝试交叉引用两个临时表,但这需要很长时间。在MySQL中有更快的方法吗?
答案 0 :(得分:1)
只需使用以下查询即可选择不同的follower_id:-
SELECT DISTINCT follower_id FROM relationships
WHERE followed_id IN ('1', '4');
希望,这将解决您的问题。
答案 1 :(得分:0)
SELECT follower_id FROM relationships WHERE followed_id=1 AND follower_id IN
(SELECT follower_id FROM relationships WHERE followed_id=4)
答案 2 :(得分:0)
一个非常简单的方法是:
SELECT follower_id
FROM relationships
WHERE followed_id IN (1, 4)
GROUP BY follower_id
HAVING COUNT(*) = 2; -- number of followed