SQL根据另一个表中的搜索结果查找表中的行

时间:2017-01-28 10:44:21

标签: mysql sql mariadb

我正在寻找一种方法从另一个表上的查询结果中搜索表值:

SELECT entry_id FROM FEEDENTRYSTATUSES WHERE starred > 0 ;
+----------+
| entry_id |
+----------+
|     1036 |
|     1059 |
+----------+
2 rows in set (0.00 sec)

SELECT url from FEEDENTRIES WHERE id = 1036 ;
+---------------------+
| url                 |
+---------------------+
| https://google.com/ |
+---------------------+
1 row in set (0.00 sec)

所以我可以从FEEDENTRYSTATUSES表中获取ID列表。 我可以通过赋值 1036 手动从第二个表中检索值。 但是我想从第一个SELECT返回的值中搜索表FEEDENTRIES。

这是一种方法吗? 任何帮助非常感谢。 非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用IN运算符和子查询来实现:

SELECT url from FEEDENTRIES 
WHERE id IN (SELECT entry_id FROM FEEDENTRYSTATUSES WHERE starred > 0);

或者加入表格并过滤所需的数据:

SELECT fe.url from FEEDENTRIES fe
    INNER JOIN FEEDENTRYSTATUSES fes ON fe.id = fes.entry_id
WHERE fes.starred > 0;