MySQL合并共享相似列的多个表

时间:2018-07-24 16:53:57

标签: mysql sql database

我有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

如您所见,语句越多,列越多,表越多。有没有一种简洁的方法可以在更简洁的语句中连接这些表?谢谢!

1 个答案:

答案 0 :(得分:0)

对于合并表,可以使用SQL中的FOREIGN KEY方法,该方法将在MySQL中工作。为此,在创建表之外:

ALTER TABLE Table1
ADD FOREIGN KEY (End_Date) REFERENCES Table2(End_Date);

要在创建表的过程中执行此操作,只需在主键之后对其进行编码,并使用包含FOREIGN KEY和除';之后的所有内容的位。 '。但是,此方法仅适用于每个表的一列。

如果您愿意的话,可以提供一些额外的帮助,以供您研究,该网站提供了所有SQL语言的基本方法,非常有用: SQL Tutorials