mysql - 如何使用Mysql连接两个具有不同值的表

标签 mysql join

我有两张 table :
表1名称:买入

姓名  |名称代码 |数量 |

 a     01    25
          01         25
b           02         75
c           03         100
c           03         25
表2名称:Sell

姓名  |名称代码 |数量 |

  b           02         60
b           02         40
c           03         80
c           03         40
d           04         45
d           04         50

那么,如何使两个表像这样连接(使用 MYSQL 查询):

姓名  |名称代码 |数量 |名称 |名称代码 |数量 |

  a           01         50 (SUM)   NULL     NULL       NULL
b           02         75         b         02       100(SUM)
c           03         125(SUM)    c         03       120(SUM)
空       空        空 d         04         90(总和)
当我输入 (SUM) 时,这意味着值是 2 行的 SUM
因为这对我来说太难了,所以我非常需要帮助
请帮助我,我不知道该怎么做。非常感谢
另外,如果我需要 b < 70 或 C < 30 等条件...

最佳答案

这有点尴尬,因为 MySQL 不支持完全外连接。由于错误而编辑:

SELECT B.name, B.name_code, B.total, S.name, S.name_code, S.total
FROM (
  SELECT name, name_code, SUM(number) AS total FROM buy GROUP BY name, name_code
) B LEFT JOIN (
  SELECT name, name_code, SUM(number) AS total FROM sell GROUP BY name, name_code
) S ON B.name = S.name
UNION
SELECT NULL, NULL, NULL, name, name_code, SUM(number) AS total FROM sell
WHERE name NOT IN (SELECT name FROM buy)
GROUP BY name, name_code;

关于mysql - 如何使用Mysql连接两个具有不同值的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51783328/

相关文章:

mysql - SQL查询从一个表的某些列复制到另一个表中的一列

MySQL计算表中重复数据的数量

mysql - 使用 SQL 命令中的 Order by/sort 和 Merge Join 为数百万行优化 SSIS 包

php - 对 mysql 查询的每个单独结果使用 while 语句

mysql - Zend Framework 2 无法从联接表中获取字段

mysql - 使用 ActiveRecord 使用 OR 子句进行查询的 "Rails Way"是什么?

java - JPA - 使用 Root、Join 在字段上加入获取

mysql - 连接图像数组 SQL

mysql - 无法通过连接获得选择查询的准确结果

SQL 连接 : selecting the last records in a one-to-many relationship