Unknown column 'date_joins.tv' in 'on clause'

SELECT tv AS '日期'
,(SELECT COUNT(1) FROM user_center.`project_users` pu
INNER JOIN (
SELECT DISTINCT use_uid FROM course.`course_order_items`
WHERE pid=1 AND state=1 AND price>1
AND complete_at>=date_joins.tv 
AND complete_at<date_add(date_joins.tv,interval 1 month)
UNION 
SELECT DISTINCT uid FROM common.`virtual_good_orders`
WHERE pid=1 AND state=2 AND price_total>2000
) b ON pu.pid=1 AND pu.uid=b.use_uid 

and pu.pro_created_at>=date_joins.tv AND pu.pro_created_at<date_add(date_joins.tv,interval 1 month)) AS '学习人数'
FROM report.`date_joins` WHERE ty='d' AND tv>='2020-01-01' AND tv<now() and tv like '%-%-01'
SELECT tv AS '日期'
,(SELECT COUNT(1) FROM user_center.`project_users` pu
INNER JOIN (
SELECT DISTINCT use_uid FROM course.`course_order_items`
WHERE pid=1 AND state=1 AND price>1
AND complete_at>=date_joins.tv 
AND complete_at<date_add(date_joins.tv,interval 1 month)
UNION 
SELECT DISTINCT uid FROM common.`virtual_good_orders`
WHERE pid=1 AND state=2 AND price_total>2000
) b ON pu.pid=1 AND pu.uid=b.use_uid 

-- 下面的那个 WHERE 原来是AND, 改为where就可以执行了
WHERE pu.pro_created_at>=date_joins.tv AND pu.pro_created_at<date_add(date_joins.tv,interval 1 month)) AS '学习人数'
FROM report.`date_joins` WHERE ty='d' AND tv>='2020-01-01' AND tv<now() and tv like '%-%-01'

第二条语句就可以执行, 嵌套字段的使用不可以用于条件中的 ON 里面的 AND, 可以 ON 其中的部分AND改为 WHERE

标签: none

添加新评论