【问题标题】:Two sql select queries into one两个sql select查询合二为一
【发布时间】:2019-06-07 17:23:16
【问题描述】:

我有一个这样的选择查询,在一个只存储消息 ID、作者和收件人的表中:(我想获取所有 message_id)

SELECT message_id FROM messages_to WHERE author_id=0

有了这个 message_id 列表,我想在另一个表中 SELECT 以获取实际消息:

SELECT messages FROM messages WHERE message_id=(message_id_from_before)

两个查询都可以返回多个结果。

是否可以有一个查询返回第二个 SELECT 查询的结果?不幸的是,我没有这样做的需求知识;如果有人可以给我一个小提示,我将非常感激。

【问题讨论】:

  • 提示:使用子查询。
  • 你为什么不使用join。如果你有 message_id 作为另一个表中的引用,那么你可以使用 join。

标签: mysql sql


【解决方案1】:

您可以在您的条件中使用子查询:

SELECT messages FROM messages WHERE message_id IN (
  SELECT message_id FROM messages_to WHERE autor_id=0
)

【讨论】:

    【解决方案2】:

    您可以使用 join 从两个表中获取结果,正如您在两个表中提到的 message_id 一样。

    试试这个

    SELECT messages.message FROM messages 
    Inner Join message_id on message_id.message_id = messages.message_id
    WHERE message_id.author_id = 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多