MySQL:我有两个表,一个是生产表,一个是归档表。我需要从两者中选择不同的记录,因为有些记录是相同的
我有一个MySQL数据库,包含2个表MySQL:我有两个表,一个是生产表,一个是归档表。我需要从两者中选择不同的记录,因为有些记录是相同的,mysql,sql,duplicates,left-join,union,Mysql,Sql,Duplicates,Left Join,Union,我有一个MySQL数据库,包含2个表prod是一个正在生产的产品,archive已存档记录。这些列完全相同产品在存档中没有所有记录 我需要在两个表的一个连接中访问不同的记录,这样我就不会在excel中复制记录和进行计算 SELECT a.order_no, a.date_of_sale, a.cost, b.order_no, b.date_of_sale, b.cost FROM `prod` AS a LEFT JOIN `a
prod
是一个正在生产的产品,archive
已存档记录。这些列完全相同<代码>产品在存档中没有所有记录
我需要在两个表的一个连接中访问不同的记录,这样我就不会在excel中复制记录和进行计算
SELECT
a.order_no,
a.date_of_sale,
a.cost,
b.order_no,
b.date_of_sale,
b.cost
FROM
`prod` AS a
LEFT JOIN `archive` AS b ON a.order_no = b.order_no
结果:
+----------+--------------+------+-------------+-----------------+---------+
| order_no | date_of_sale | cost | order_no(1) | date_of_sale(2) | cost(2) |
+----------+--------------+------+-------------+-----------------+---------+
| 333 | 11-28-2017 | 10 | 333 | 11-28-2017 | 10 |
| 334 | 11-28-2017 | 12 | 334 | 11-28-2017 | 12 |
| 336 | 11-29-2017 | 30 | 335 | 11-28-2017 | 25 |
| 337 | 11-30-2017 | 15 | | | |
| 338 | 11-30-2017 | 17 | 338 | 11-28-2017 | 17 |
+----------+--------------+------+-------------+-----------------+---------+
如何构造查询以过滤两个表中相同的记录
我想要的结果是:
+----------+--------------+------+
| order_no | date_of_sale | cost |
+----------+--------------+------+
| 333 | 11-28-2017 | 10 |
| 334 | 11-28-2017 | 12 |
| 335 | 11-28-2017 | 25 |
| 336 | 11-29-2017 | 30 |
| 337 | 11-30-2017 | 15 |
| 338 | 11-30-2017 | 17 |
+----------+--------------+------+```
我怀疑您想要的是联合
而不是加入
:
select order_no, date_of_sale, cost from prod
union
select order_no, date_of_sale, cost from archive
union
删除结果集之间的重复项(以及结果集内的重复项)。请向我们显示您想要的结果。您是否尝试按列名称“分组”列?所需结果与prod
中的结果有何不同?@Barmar-感谢您指出这一点。我更改了表信息以显示差异和所需的结果。您的原始查询如何将prod中的order\u no=336
与归档中的order\u no=335
连接起来?Union非常适合这种情况。以前从未用过。非常感谢。