连接多个表的列

时间:2017-04-04 18:06:21

标签: sql select join union

我试图使用一个查询从两个不同的表中提取两个相同数据类型的列。注意:两个表中的帐户属性长度各不相同。联盟无法在这里工作,因为两个表中的列数(实际上)不同。

CREATE TABLE IF NOT EXISTS `mydb`.`TABLE_A` (
  `ID_TABLE_A` INT NOT NULL AUTO_INCREMENT,
  `ACCOUNT` VARCHAR(5) NULL,
  `SALES` INT NULL,
  PRIMARY KEY (`ID_TABLE_A`))
ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `mydb`.`TABLE_B` (
  `ID_TABLE_B` INT NOT NULL AUTO_INCREMENT,
  `ACOUNT` VARCHAR(9) NULL,
  `SALES` INT NULL,
  PRIMARY KEY (`ID_TABLE_B`))
ENGINE = InnoDB;

要求:(我知道这不是正确的,只是为了展示部分图片)

SELECT 
    ACCOUNTS,
    SALES
FROM
TABLE_A, TABLE_B

结果:

---------------
|accounts|sales|
| 2854 |52500  |
| 6584 |54645  | 
| 54782| 5624  |
| 58496|46259  |
| 56958| 6528  |
---------------

1 个答案:

答案 0 :(得分:1)

如果你想要两个非联合兼容的表的并集,那么使它们与union兼容:

(SELECT 
    ACCOUNTS,
    SALES
FROM
TABLE_A) UNION ALL
(SELECT 
    ACCOUNTS,
    SALES
FROM TABLE_B)

我根据您希望保留重复的假设放置UNION ALL。如果您希望输出无重复,请将其替换为UNION