我有5个表,每个表有10列以上。它们都共享一些相似的列,但是每个表都有自己唯一的列。这些表没有相互关联,这意味着一个表中的一个记录将不能存在于另一表中。因此,当我尝试使用UNION ALL
连接它们时,由于表有很多列,因此我得到了一个非常复杂的MySQL语句。例如,我有2个表:
Table1: ID, Name, Parts, Comments, End_Date
Table2: ID, Name, Machines, End_Date
如果要合并这两个表,则将使用MySQL语句
SELECT
ID,
Name,
Parts,
'' as Machines,
Comments,
End_Date
FROM Table1
UNION ALL
SELECT
ID,
Name,
'' as Parts,
Machines,
'' as Comments,
End_Date
FROM Table2
如您所见,语句越多,列越多,表越多。有没有一种简洁的方法可以在更简洁的语句中连接这些表?谢谢!
答案 0 :(得分:0)
对于合并表,可以使用SQL中的FOREIGN KEY方法,该方法将在MySQL中工作。为此,在创建表之外:
ALTER TABLE Table1
ADD FOREIGN KEY (End_Date) REFERENCES Table2(End_Date);
要在创建表的过程中执行此操作,只需在主键之后对其进行编码,并使用包含FOREIGN KEY和除';之后的所有内容的位。 '。但是,此方法仅适用于每个表的一列。
如果您愿意的话,可以提供一些额外的帮助,以供您研究,该网站提供了所有SQL语言的基本方法,非常有用: SQL Tutorials