Postgresql

uniq 連接 3 個表,關係表不是 uniq

  • March 19, 2015

我正在使用 Postgres。

我有 3 張桌子:

table_1
 id

table_1_2
 table_1_id, table_2_id

table_2
 id

問題是關係表table_1_2不是唯一的。

即,table_1_2將多次具有相同的元組:

{1,1}, {1,1}, {1,1}, {1,1}, {1,1}, {1,2}, {1,2}, {1,2} etc.

有沒有辦法加入table_1table_2使用table_1_2,但只有 uniq 結果?

目前,我將從關係表中獲取所有重複項。

很多方法。這是一個(應該是檢索所有行的快速變體):

SELECT t1.*, t2.*
FROM   table1 t1
JOIN  (
   SELECT DISTINCT table_1_id, table_2_id
   FROM   table1_2
   ) t1_2 ON t1_2.table_1_id = t1.id
JOIN   table2 t2 ON t2.id = t1_2.table_2_id;

為什麼不永久刪除重複項?並添加一個UNIQUE約束…

引用自:https://dba.stackexchange.com/questions/95739