我想联合到表和加入他们与第三个元数据表,我想知道哪种方法是最好的/最快的?
该数据库是PostgreSQL。
下面是我的两个建议,但其他方法是受欢迎的。PostgreSQL联盟两个表,并加入第三个表
要做到工会前加入两个表:
SELECT a.id, a.feature_type, b.datetime, b.file_path
FROM table1 a, metadata b WHERE a.metadata_id = b.id
UNION ALL
SELECT a.id, a.feature_type, b.datetime, b.file_path
FROM table2 a, metadata b WHERE a.metadata_id = b.id
还是先做工会,然后做加盟:
SELECT a.id, a.feature_type, b.datetime, b.file_path
FROM
(
SELECT id, feature_type, metadata_id FROM table1
UNION ALL
SELECT id, feature_type, metadata_id FROM table2
)a, metadata b
WHERE a.metadata_id = b.id
我在(人类)眼睛上发现第二个更容易。我通常会选择最“关系健全”的方法,或者最简单的方式来阅读和维护(通常是同样的事情,这不仅仅是巧合),除非它对另一个候选构造执行得非常糟糕。 – onedaywhen 2011-05-17 12:55:02