1
我有這樣的場景:替代連接語句在PostgreSQL
table_a
color | height | size
'Blue' | 10 | 1
'Red' | 15 | 2
'Green' | 10 | 1
'White' | 5 | null
table_b
name | age | color | height
'Paul' | 27 | 'Red' | 15
'Joseph' | 19 | 'Green' | 10
'John' | 22 | 'Purple' | 5
'Eric' | 34 | 'Blue' | 21
基本上我試圖讓所有的表-B寄存器,高度和顏色與相應的值表-A匹配只有大小表-A不爲空。我用一個內部連接和一個where子句實現了這個目標。像這樣:
select * from table_b b
inner join table_a a on a.height = b.height and a.color = b.color
where
a.size is not null
這是有效的,但我不確定這種方法是一個好的(或最好的)解決方案。加入聲明對於這種情況是最好的,還是有最佳選擇?
我正在使用Postgresql 9.4。
謝謝。
要關聯表之間的數據再加入是正確的做法。如果有重複計數的可能性(即'table_a'中有兩個'Red'條目),那麼'存在'可能會更好 –
'JOIN'不是一個語句。它是一個*運算符*,它組合了兩個表(或*表表達式*),產生了一個新的表表達式。 – joop