这句话的意思是说每个派生出来的表都必须有一个自己的别名
我的SQL语句是:
SELECT
COUNT(*)
FROM
(
SELECT
c.*
FROM
commodity c
LEFT JOIN temp_data t ON c.cyid = t.cyid
WHERE
collid = 5
AND cystatus = 1
GROUP BY
c.cyid
HAVING
SUM(t.temp_cycount) > 0
)
当我执行到这里的时候就抛出了这个异常,原来我进行嵌套查询的时候子查询出来的的结果是作为一个派生表来进行上一级的查询的,所以子查询的结果必须要有一个别名
把SQL语句改成:
SELECT
COUNT(*)
FROM
(
SELECT
c.*
FROM
commodity c
LEFT JOIN temp_data t ON c.cyid = t.cyid
WHERE
collid = 5
AND cystatus = 1
GROUP BY
c.cyid
HAVING
SUM(t.temp_cycount) > 0
) AS i
问题就解决了,虽然只加了一个没有任何作用的别名i,但这个别名是必须的!