【问题标题】:SQL find rows in table based on search results in another tableSQL 根据另一个表中的搜索结果查找表中的行
【发布时间】:2017-01-28 10:44:21
【问题描述】:

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

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。

这里有办法吗? 非常感谢任何帮助。 非常感谢

【问题讨论】:

  • INNER JOIN

标签: mysql sql mariadb


【解决方案1】:

您可以使用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;

【讨论】:

    猜你喜欢
    • 2013-10-08
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    相关资源
    最近更新 更多