我想联合到表并将它们与第三个元数据表连接起来,我想知道哪种方法最好/最快?
数据库是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
最佳答案
对这两个语句都运行EXPLAIN ANALYZE,然后您将看到哪个语句更有效。