我有两个问题。
BaseType
和
`SELECT
total,from_sale,from_sent,on_sent
FROM deliverability.delivery_count_repo
where add_time >= CURDATE()`
我尝试加入此
但出了点问题。每个派生表都必须有自己的别名错误
答案 0 :(得分:1)
要将一个结果集连接到另一个结果集,通常最好使用UNION ALL
。
但是,我怀疑你对SQL如何运作感到困惑。它处理数据的矩形。每个结果集都是这样一个矩形。它有一定数量的列,每个列都显示某种类型的信息。并且,每个结果集都有一定数量的行。结果集的每一行都有与每隔一行相同类型的列。
您问题中的第一个结果集有四列,第二个结果列有三列。试着把它们塞进一个结果集中是没有意义的。
答案 1 :(得分:0)
试试这个( 假设' idCommon'是两个表之间的共同id):
`SELECT
total,from_sale,from_sent,on_sent
FROM deliverability.delivery_count_repo
INNER JOIN (
`SELECT
idCommon,
order_customFields.order_customFields_delivery_method method,
sum(case `order`.order_status when 'paid' then 1 else 0 end) paid,
sum(case `order`.order_status when 'later' then 1 else 0 end) later
FROM order_customFields
INNER JOIN `order` ON order_customFields.order_id = `order`.order_id
WHERE
order_customFields.order_customFields_order_date >= date_sub(date_sub(curdate(), interval day(curdate()) - 1 day), interval 1 month) and
order_customFields.order_customFields_order_date < date_sub(curdate(), interval day(curdate()) - 1 day)
AND order_customFields.order_customFields_delivery_method is not null
GROUP BY
order_customFields.order_customFields_delivery_method `
) as t ON t.idCommon=delivery_count_repo.idCommon -- you must cross id's Common
where add_time >= CURDATE()`