我從我想拍一些列的連接,爲我的Java提供了一個視圖/休眠應用兩個表。它看起來像這樣:如何使用DISTINCT VIEWS正確
CREATE VIEW customer_contacts AS cc
SELECT DISTINCT ON (cust.id) cust.id
cust.company
cust.zip
...
con.name
con.forename
...
FROM contacts con
LEFT JOIN customer cust ON con.customer = cust.id
ORDER BY cust.id
到目前爲止好。很簡單。 如果我做出的觀點一樣,一個SELECT:
SELECT *
FROM cc
WHERE name ilike '%schult%'
我得到13結果。
如果我做出同樣的查詢直接與view語句
SELECT DISTINCT ON (cust.id) cust.id
cust.company
cust.zip
...
con.name
con.forename
...
FROM contacts con
LEFT JOIN customer cust ON con.customer = cust.id
WHERE name ilike '%schult%'
ORDER BY cust.id
我75結果! 我發現這是破壞結果的DISTINCT。但爲什麼?
我怎樣才能正確地使用它?
請出示了 「同一個查詢」,你正在運行的確切SQL文本。 –
嗨,彼得,我澄清了我的問題,我寫了直接的聲明。 – M46
但是你在第二個查詢中忘記了'WHERE name ilike'%schult%''的條件... –