【发布时间】:2020-03-04 11:35:40
【问题描述】:
我必须加入两个选择查询,并且我正在使用 UNION
SELECT
DATE(post_orders.created),
count(post_orders.id) as total_sales_today,
SUM(IF(user_leads.event_type = 'IN', 1, 0)) as sales_count_inquiry,
SUM(IF(user_leads.event_type = 'EN', 1, 0)) as sales_count_enroll_now
FROM
post_orders
left JOIN
user_leads ON post_orders.userid = user_leads.user_id
AND post_orders.courseid = user_leads.course_id
WHERE
DATE(post_orders.created) <= '2020-03-03'
and DATE(post_orders.created) > '2019-10-20'
group by DATE(post_orders.created);
SELECT
DATE(user_leads.created),
COUNT(user_leads.id) AS lead_count,
SUM(IF(users.country = 'IN', 1, 0)) as lead_count_india,
SUM(IF(users.country = 'US', 1, 0)) as lead_count_usa,
SUM(IF(users.country <> 'IN' and users.country <> 'US', 1, 0)) as lead_count_row,
SUM(IF(user_leads.event_type = 'EN' and users.country = 'US', 1, 0)) as lead_count_enrollnow_us
FROM
user_leads
join courses on user_leads.course_id = courses.id
join users on user_leads.user_id = users.id
WHERE
DATE(user_leads.created) >= '2019-10-20'
AND DATE(user_leads.created) < '2020-03-03'
AND courses.course_type !=4
GROUP BY DATE(user_leads.created) DESC;
但是我收到了这个错误: 使用的 SELECT 语句有不同的列数 0.238 秒 让我知道我哪里错了,我该如何解决?
【问题讨论】:
-
您应该提供样本数据和期望的结果。
-
这两个查询的结果是完全不同的列。您希望由此产生的联合会是什么样子?
-
JOIN 和 UNION 是两个完全不同的东西......展示查询输出(足够 2 条记录)和它们的最终结果。我建议指定 MySQL 版本。