代码之家  ›  专栏  ›  技术社区  ›  kramer65

如何在MySQL中使用子查询中的字段?

  •  -1
  • kramer65  · 技术社区  · 6 年前

    我有以下问题:

    SELECT insent.id, notifications.id
    FROM insent
    WHERE insent.id IN (
        SELECT insent_id
        FROM notifications
    )
    ;
    

    但这样说有一个错误:

    “字段列表”中的未知列“notifications.id”

    知道我怎么做吗?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Maksym Fedorov    6 年前

    如果要从一个查询中的几个表中获取数据,则应使用 JOIN 建设。例如:

    SELECT 
        insent.id, 
        notifications.id 
    FROM insent 
    JOIN notifications ON notifications.insent_id = insent.id
    

    如果你不想要,你必须把它拿走 notifications.id 字段列表中的字段

    SELECT 
       insent.id
    FROM insent
    WHERE insent.id IN (
        SELECT insent_id FROM notifications
    )
    
        2
  •  2
  •   Sanal Sunny    6 年前

    这里的问题是通知表不在范围内 像这样试试

    SELECT 
       i.id, 
       n.id 
    FROM insent AS i
    JOIN notifications AS n ON n.insent_id = insent.id