我试图使用一个查询从两个不同的表中提取两个相同数据类型的列。注意:两个表中的帐户属性长度各不相同。联盟无法在这里工作,因为两个表中的列数(实际上)不同。
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 |
---------------
答案 0 :(得分:1)
如果你想要两个非联合兼容的表的并集,那么使它们与union兼容:
(SELECT
ACCOUNTS,
SALES
FROM
TABLE_A) UNION ALL
(SELECT
ACCOUNTS,
SALES
FROM TABLE_B)
我根据您希望保留重复的假设放置UNION ALL
。如果您希望输出无重复,请将其替换为UNION
。