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