![](/img/trans.png)
[英]select from every two rows in MySQL, using different columns for matching
[英]How to get rows from two different SELECT statements with matching columns
我的 MySQL 数据库中有一个名为关系的表,其中包含 follower_id 和 follow_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 中有没有更快的方法来做到这一点?
只需使用以下查询,您就可以选择不同的 follower_id:-
SELECT DISTINCT follower_id FROM relationships
WHERE followed_id IN ('1', '4');
希望,这将解决您的问题。
SELECT follower_id FROM relationships WHERE followed_id=1 AND follower_id IN
(SELECT follower_id FROM relationships WHERE followed_id=4)
一个非常简单的方法是:
SELECT follower_id
FROM relationships
WHERE followed_id IN (1, 4)
GROUP BY follower_id
HAVING COUNT(*) = 2; -- number of followed
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.