Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 连接上的子查询_Sql_Mysql_Mysql Error 1248 - Fatal编程技术网

Sql 连接上的子查询

Sql 连接上的子查询,sql,mysql,mysql-error-1248,Sql,Mysql,Mysql Error 1248,我正在尝试执行一个查询,以筛选一个表中的行,然后连接另一个表中的结果,然后筛选出其他行 以下是我写的查询: SELECT * FROM (SELECT media.id AS id2, media.flagged AS flagged2, media.item_status AS status2 FROM media WHERE flagged2 != 'nsfw' AND status2 != 'deleted'

我正在尝试执行一个查询,以筛选一个表中的行,然后连接另一个表中的结果,然后筛选出其他行

以下是我写的查询:

SELECT * 
  FROM (SELECT media.id AS id2, media.flagged AS flagged2, media.item_status AS status2 
          FROM media 
         WHERE flagged2 != 'nsfw' 
           AND status2 != 'deleted' 
     ORDER BY id2 DESC LIMIT 0,5) 
  JOIN media on info.mid = media.id 
 WHERE info.topic = 'food_drink' 
    OR info.topic='cooking' 
GROUP BY info.mid
我想我很快就可以让查询正常工作了,但我一直得到这样一条信息:“每个派生表都必须有自己的别名。”我在谷歌上搜索了这条信息,从我所读到的内容来看,我需要给子查询的部分加上别名,我已经尝试过了,但仍然无法正常工作。

使用:

SELECT * 
  FROM (SELECT media.id AS id2, media.flagged AS flagged2, media.item_status AS status2 
          FROM media 
         WHERE flagged2 != 'nsfw' 
           AND status2 != 'deleted' 
      ORDER BY id2 DESC LIMIT 0, 5) x
  JOIN media on info.mid = media.id 
 WHERE info.topic = 'food_drink' 
    OR info.topic='cooking' 
GROUP BY info.mid

参见
x
,就在括号外,但在连接之前?这就是错误所在。在FROM和before JOIN之后的括号中的内容是一个派生表(也称为内联视图),MySQL要求您为其指定一个表别名。然后,当您引用其中的任何列时,您将使用
x.id2
/等。

只是一个简单的问题……您从哪里获得“信息”?它是别名还是表?@hallie:鉴于Eric没有使用表别名,我相信它是表。Eric必须让我们知道是否应该在这个查询中引用
INFO
,否则它们与派生表的关系…我怀疑…在INFO.mid=media.id上加入媒体。。。实际上应该是…在info.mid=media.id上加入信息…啊,这很有意义。我还以为我需要别名的部分在子查询中。只需根据您的输入重新编写查询,即可完美运行!