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

pxy2qtax  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(318)

我有以下问题:

  1. SELECT insent.id, notifications.id
  2. FROM insent
  3. WHERE insent.id IN (
  4. SELECT insent_id
  5. FROM notifications
  6. )
  7. ;

但这给出了一个错误:
“字段列表”中的未知列“notifications.id”
你知道我怎么做吗?

1tu0hz3e

1tu0hz3e1#

这里的问题是notifications表不在范围内

  1. SELECT
  2. i.id,
  3. n.id
  4. FROM insent AS i
  5. JOIN notifications AS n ON n.insent_id = insent.id
nszi6y05

nszi6y052#

如果希望在一个查询中从几个表中获取数据,那么应该使用连接构造。例如:

  1. SELECT
  2. insent.id,
  3. notifications.id
  4. FROM insent
  5. JOIN notifications ON notifications.insent_id = insent.id

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

  1. SELECT
  2. insent.id
  3. FROM insent
  4. WHERE insent.id IN (
  5. SELECT insent_id FROM notifications
  6. )

相关问题