Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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
为什么MySQL在我的SELECT中定义了“错误代码:1054.on子句”中的未知列“x”?_Mysql_Sql_Join - Fatal编程技术网

为什么MySQL在我的SELECT中定义了“错误代码:1054.on子句”中的未知列“x”?

为什么MySQL在我的SELECT中定义了“错误代码:1054.on子句”中的未知列“x”?,mysql,sql,join,Mysql,Sql,Join,以下sql有什么问题: SELECT DATE(NOW())-INTERVAL seq.seq DAY sdate, u.order_type, IFNULL(c,0) c FROM ( SELECT 0 AS seq UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 ) seq LE

以下sql有什么问题:

SELECT DATE(NOW())-INTERVAL seq.seq DAY sdate, u.order_type, IFNULL(c,0) c
FROM (
    SELECT 0 AS seq 
    UNION ALL SELECT 1 UNION ALL SELECT 2 
    UNION ALL SELECT 3 UNION ALL SELECT 4
    UNION ALL SELECT 5 UNION ALL SELECT 6
) seq
LEFT JOIN (
    SELECT t.order_type, DATE_FORMAT(t.order_date, '%Y-%m-%d') as tdate, count(*) c
    FROM `order` t
    WHERE t.order_type IN (10,11)
    GROUP BY t.order_type, tdate
) u ON u.tdate = sdate
为什么我会得到错误代码:1054。“on子句”中的未知列“sdate”? 基本上,我试图选择每天每种订单类型的订单数量。如果给定日期没有给定类型的订单,我希望结果为0:

| date       | order_type | count |
|------------|------------|-------|
| 2018-11-09 | 10         | 2     |
| 2018-11-09 | 11         | 0     |
| 2018-11-10 | 10         | 0     |
| 2018-11-10 | 11         | 0     |
| 2018-11-11 | 10         | 1     |
| 2018-11-11 | 11         | 2     |
| 2018-11-12 | 10         | 3     |
| 2018-11-12 | 11         | 2     |
sdate在SELECT子句中定义,因此在FROM子句中不可用。您需要按连接条件中的方式指定计算:

ON u.tdate = DATE(NOW())-INTERVAL seq.seq DAY

谢谢你的洞察力。现在开始工作了,今天我学到了一些东西。显然,这是一个常见问题。请总是用谷歌搜索你的问题/问题/目标的许多清晰、简洁和具体的版本/措辞,有或没有你的特定字符串/名称,并阅读许多答案。将发现的相关关键字添加到搜索中。如果你找不到答案,就发布,使用1个变体搜索作为标签的标题和关键字。请参见文本上方的向下投票箭头鼠标。当你有一个非重复代码问题要发布时,请阅读并采取行动。另外:阅读手册:MySQL select语句页面解决了这个问题&扩展到别处使用select别名。为了清晰和避免解析问题,一般惯例是使用explicit AS作为select列别名,使用implicit AS作为from表别名关联名。PS Re google注意,google将双引号视为要求精确字符串匹配的特殊字符。还了解站点:&其他搜索功能。可能重复的