全部, 我有几个表,超过50个,有一个共同的列“MYID”,并且无法在不编写巨大查询的情况下找到一种更简单的方法来加入它们。
想象一下以下示例(仅包含50个表和50个数据点)
SELECT DATAPOINT1, DATAPOINT2, DATAPOINT3, DATAPOINT4, DATAPONT5
FROM TABLE1, TABLE2, TABLE3, TABLE4, TABLE5
WHERE TABLE1.MYID = TABLE2.MYID, MYTABLE2.MYID=MYTABLE3.MYID, MYTABLE4.MYID=MYTABLE5.MYID
如何通过缩短查询来实现上述结果?
答案 0 :(得分:0)
看起来像一个糟糕的数据库设计。您显示的查询是关于您需要的。很多很多桌子都要加入,但这就是它给出的设计方式。它不能更短,因为您需要列出所有列,所有表和所有条件。没有什么可以删除的。
使用正确的连接语法:
select
t1.datapoint1,
t2.datapoint2,
t3.datapoint3,
...
from table1 t1
join table2 t2 on t2.myid = t1.myid
join table3 t3 on t3.myid = t1.myid
join ...
例如,使用编程语言循环或Excel非常容易生成。