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

时间:2018-11-27 13:39:46

标签: mysql sql subquery

我有以下查询:

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

但这给出了一个错误:

  

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

你知道我该怎么做吗?

2 个答案:

答案 0 :(得分:2)

如果要在一个查询中从几个表中获取数据,则应使用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
)

答案 1 :(得分:2)

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

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