2015-11-16 31 views
0

我有這個疑問:PostgreSQL的 - 錯誤查詢

SELECT DISTINCT par.id, par.title, cod.id AS id_codebook, cod.title AS title_codebook 
FROM catalog_parameter_codebook cod 
JOIN catalog_parameter par ON (par.id=cod.id_parameter) 
JOIN catalog_parameter_product_value_parameter_codebook_mm codmm ON (cod.id=codmm.id_parameter_codebook) 
JOIN catalog_parameter_product_value pv ON (pv.id=codmm.id_parameter_product_value) 
JOIN catalog_product p ON (p.id=pv.id_product) 
WHERE p.state=2 AND p.hidden=0 AND par.type=2 AND par.display_in_parameter_search=1 AND par.hidden=0 
ORDER BY par.sorting, cod.title 

,我得到這個錯誤:

LINE 8: ORDER BY par.sorting, cod.title

ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list

我與PostgreSQL中的總的初學者。 謝謝。

回答

2

的錯誤消息指出,par.sorting必須在選擇列表

如果您使用不同的或組,你被排序的所有列,必須在選擇列列表

SELECT DISTINCT par.id, par.title, cod.id AS id_codebook, cod.title AS title_codebook, par.sorting 
FROM catalog_parameter_codebook cod 
JOIN catalog_parameter par ON (par.id=cod.id_parameter) 
JOIN catalog_parameter_product_value_parameter_codebook_mm codmm ON (cod.id=codmm.id_parameter_codebook) 
JOIN catalog_parameter_product_value pv ON (pv.id=codmm.id_parameter_product_value) 
JOIN catalog_product p ON (p.id=pv.id_product) 
WHERE p.state=2 AND p.hidden=0 AND par.type=2 AND par.display_in_parameter_search=1 AND par.hidden=0 
ORDER BY par.sorting, cod.title 
+0

好吧,我明白了,但是當我將par.sorting添加到SELECT列表中時,我沒有得到所需的輸出。我得到了重複的行。 – kevas

+0

你爲什麼得到重複?給我們一個簡單的表格架構,最好帶一個小的樣本數據,並解釋你想做什麼 –

+0

不,對不起,沒關係。謝謝。 – kevas