Mysql 如何从不同的表中选择值?

Mysql 如何从不同的表中选择值?,mysql,sql,database,Mysql,Sql,Database,在下面的示例中,我将如何实现从不同表中进行选择的sql查询 SalesCodeA ---------------------------------------------------- ID | EMPLOYEE NAME | EMPLOYEE CODE || EMPLOYEE SALES 1 STEVE JOBS A 1000 SalesCodeB --------------------------------------------

在下面的示例中,我将如何实现从不同表中进行选择的sql查询

SalesCodeA
----------------------------------------------------
ID | EMPLOYEE NAME | EMPLOYEE CODE || EMPLOYEE SALES
1     STEVE JOBS          A               1000

SalesCodeB
----------------------------------------------------
ID | EMPLOYEE NAME | EMPLOYEE CODE || EMPLOYEE SALES
1     BILL GATES          B               2000

SalesCodeC
----------------------------------------------------
ID | EMPLOYEE NAME | EMPLOYEE CODE || EMPLOYEE SALES
1     JOHN APPLE          C               3000
我将如何实现基于EmployeeCode获取数据的功能??我试着用

 SELECT * FROM SalesCodeA, SalesCodeB, SalesCodeC WHERE EmployeeCode ="A"; 

但它不起作用

我完全理解您的查询,但我可以建议您使用来自不同查询的union,因为所有表结构都是相同的

SELECT * FROM TABLE_1 WHERE EMP_CODE='A';
UNION
SELECT * FROM TABLE_2 WHERE EMP_CODE='B';
UNION
SELECT * FROM TABLE_3 WHERE EMP_COE='C';

可能您正在寻找此(
UNION ALL

另外,为每个员工单独设置一个表看起来不是一个合适的设计,为所有员工设置一个表,因为
员工代码
员工ID
将是唯一的

尝试以下方法:

SELECT * FROM (
SELECT * FROM SalesCodeA UNION ALL
SELECT * FROM SalesCodeB UNION ALL
SELECT * FROM SalesCodeC) t WHERE t.EmployeeCode ="A";

您可以使用
UNION ALL
运算符。确保所有表的列数相同

SELECT *
FROM
(SELECT * FROM SalesCodeA 
UNION ALL
SELECT * FROM SalesCodeB 
UNION ALL
SELECT * FROM SalesCodeC ) t
WHERE t.EMP_CODE='A';

UNION
这是一种错误的方法。为所有Salecodes设置一个表。格式化查询并使用UNION all选择所有记录UNION将仅从所有表中选择唯一记录,但要求从所有表中选择所有数据。
SELECT *
FROM
(SELECT * FROM SalesCodeA 
UNION ALL
SELECT * FROM SalesCodeB 
UNION ALL
SELECT * FROM SalesCodeC ) t
WHERE t.EMP_CODE='A';