mysql - 如何从具有匹配列的两个不同 SELECT 语句中获取行
问题描述
我的 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');
希望,这将解决您的问题。
推荐阅读
- r-raster - 使用 raster::predict 将零膨胀负二项式预测为栅格
- c - 如何修复创建一些随机字符的字符串?
- android - Ionic-Angular App with Capacitor Android Geolocation only works if open Google Maps or Waze App's
- unit-testing - 面向组织的 Salesforce 测试
- numpy - Numpy - Have a list of indices that I want converted to the actual values
- python - 在 Python 中获取等效的 `bs`(样条线)
- reactjs - 为什么我在调度 gettAll 数据时得到未定义的变量 - ReactJs hooks redux Crud
- c++ - c ++换行中的ascii艺术生成器
- python - Python - 以二进制形式读取文件内容而不包含其元数据
- c# - C# - API - HttpFactory - HTTPS 链接的问题