假设我有3个表:表1、表2和表3。我基本上希望将以下3个查询组合在一起: SELECT columnA FROM table1
SELECT columnB FROM table2 SELECT columnC FROM table3
列的大小可能不同,我希望避免重复数据。如果columna有3个元素,columnb有1个元素,columnc有2个元素,我会得到一个表,其中每列都有各自的元素数。未填充的行可以保留为空。
如何创建完成此任务的单个查询?
简单的查询 SELECT DISTINCT table1.columnA, table2.columnB, table3.columnC FROM table1, table2, table3
只是给了我一个表,其中列出了这些列中所有元素的可能组合。
4条答案
按热度按时间xnifntxz1#
你可以试着用union
blpfk2vs2#
如果只需要不同的值,可以使用union
但是如果你需要所有的值,你应该使用union all
hgb9j2n63#
UNION ALL
或者UNION
帮你。取决于是否需要复制:欲了解更多信息,请阅读:https://dev.mysql.com/doc/refman/8.0/en/union.html
编辑:
您可以使用第二列和固定文本来区分应用程序中的记录:
2w3kk1z54#
如果您采用并集的思想并添加一个行号,那么您可以创建一个行号列表,然后使用该列表左键联接到三个表。例如