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 完全连接两个查询_Mysql_Sql - Fatal编程技术网

Mysql 完全连接两个查询

Mysql 完全连接两个查询,mysql,sql,Mysql,Sql,此查询返回了385个字符串 SELECT order_number FROM `order` inner join order_delivery_data on `order`.order_id = order_delivery_data.order_id where order_status = 'delivered' AND order_statusUpdatedAt >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) and order_delive

此查询返回了385个字符串

SELECT order_number
FROM `order` 
inner join order_delivery_data on `order`.order_id = order_delivery_data.order_id
where order_status = 'delivered' AND order_statusUpdatedAt >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY)
and order_delivery_data_name in ('London')
这返回了74个字符串

SELECT order_number
FROM `order` 
inner join order_delivery_data on `order`.order_id = order_delivery_data.order_id
where order_status = 'delivered' AND order_statusUpdatedAt BETWEEN  DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY) 
AND  DATE_SUB(CURRENT_DATE, INTERVAL 7  DAY)
and order_delivery_data_name in ('London')

如何连接它,因为有两列

您需要使用完全连接,即使用mysql时使用UNION ALL:

 try this:
 SELECT t1.order_number as order_t1, t2.order_number as order_t2 FROM
        (       SELECT order_number,`order`.order_id 
                FROM `order` 
                inner join order_delivery_data on `order`.order_id = order_delivery_data.order_id
                where order_status = 'delivered' AND order_statusUpdatedAt BETWEEN  DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY) 
                AND  DATE_SUB(CURRENT_DATE, INTERVAL 7  DAY)
                and order_delivery_data_name in ('London')

        ) as t1
        LEFT JOIN
        (SELECT order_number,`order`.order_id 
                FROM `order` 
                inner join order_delivery_data on `order`.order_id = order_delivery_data.order_id
                where order_status = 'delivered' AND order_statusUpdatedAt BETWEEN  DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY) 
                AND  DATE_SUB(CURRENT_DATE, INTERVAL 7  DAY)
                and order_delivery_data_name in ('London')
        ) as t2
        ON t1.order_id  = t2.order_id
    UNION ALL
        SELECT t1.order_number as order_t1, t2.order_number as order_t2 FROM
        (       SELECT order_number,`order`.order_id 
                FROM `order` 
                inner join order_delivery_data on `order`.order_id = order_delivery_data.order_id
                where order_status = 'delivered' AND order_statusUpdatedAt BETWEEN  DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY) 
                AND  DATE_SUB(CURRENT_DATE, INTERVAL 7  DAY)
                and order_delivery_data_name in ('London')

        ) as t1
        RIGHT JOIN
        (SELECT order_number,`order`.order_id 
                FROM `order` 
                inner join order_delivery_data on `order`.order_id = order_delivery_data.order_id
                where order_status = 'delivered' AND order_statusUpdatedAt BETWEEN  DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY) 
                AND  DATE_SUB(CURRENT_DATE, INTERVAL 7  DAY)
                and order_delivery_data_name in ('London')
        ) as t2
        ON t1.order_id  = t2.order_id;

第一个\u query UNION所有第二个\u query UNION

UNION返回一列459个字符串,我需要两列385和74个字符串。两个查询的时间范围相同,我更改了它。但现在它在第一列显示385值,在第二列显示零。可能是因为t1.order\u id=t2.order\u id上的
?两列中没有相同的order_id,正是出于这个原因,这就是我建议使用union的原因。通过模拟完全外部联接来编辑我的答案。将使用两个查询中的数据重新返回一列。我需要两个列,每个列都有数据,每个请求使用不同的别名:(第一个查询)作为“第一个7天”UNION ALL(第二个查询)作为“下一个3天”