Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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 连接两个查询_Mysql - Fatal编程技术网

Mysql 连接两个查询

Mysql 连接两个查询,mysql,Mysql,我有两个问题 `SELECT total,from_sale,from_sent,on_sent FROM deliverability.delivery_count_repo where add_time >= CURDATE()` 及 我试着加入这个 但是出了点问题。每个派生表都必须有自己的别名错误才能将一个结果集连接到另一个结果集,通常最好使用UNION ALL 但是,我怀疑您对SQL的工作原理感到困惑。它处理矩形数据。每个结果集都是这样一个矩形。它有一定数量的列,每个列显示特定

我有两个问题

`SELECT 
total,from_sale,from_sent,on_sent
FROM deliverability.delivery_count_repo
where add_time >= CURDATE()`

我试着加入这个


但是出了点问题。每个派生表都必须有自己的别名错误

才能将一个结果集连接到另一个结果集,通常最好使用UNION ALL

但是,我怀疑您对SQL的工作原理感到困惑。它处理矩形数据。每个结果集都是这样一个矩形。它有一定数量的列,每个列显示特定类型的信息。而且,每个结果集都有一定数量的行。结果集的每一行都具有与其他每一行相同类型的列

问题中的第一个结果集有四列,第二个结果集有三列。尝试将这些结果塞进一个结果集中没有什么意义。

试试这个 假设“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()`

您真正想做什么?@Michaelalexandero第一次查询的结果是5行,第二次查询的结果是3行。我想在一个查询中最终得到8行使用联接要求两个查询具有相同的列计数。第一个查询有4列,第二个查询有3列。这是行不通的。
`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()`