2011-08-25 73 views
0

我有以下的MySQL查詢:結合的MySQL查詢在PHP

查詢#1:

SELECT imgURL, imgTitle, FROM images 

查詢#2:

SELECT DISTINCT imgFamily FROM images 

查詢# 3:

SELECT DISTINCT imgClass FROM images 

我想知道是否可以將它們組合成一個查詢?換句話說,SELECT imgURL, imgTitle, DISTINCT imgFamily, and DISTINCT imgClass

當我試圖做如上(不and),它失敗了。有什麼建議麼?


結果我得到的是以下幾點:MySql ErrorYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT imgFamily FROM images

我希望是沒有錯誤,並有行返回的結果。

+0

當你說它「失敗」時,你是什麼意思? –

+1

發佈您獲得的結果和您期望的結果? – reggie

+0

@Abe Miessler我沒有得到任何結果是我的意思。爲什麼?他們應該結合好嗎? – stefmikhail

回答

1

distinct關鍵字在MySQL中是distinctrow的代名詞 - 如。如果你想要一個'選擇不同的'。您將只獲取結果中尚未出現字段組合的行。通過選擇非明顯的字段,您將不會獲得任何明顯的結果。這必須作爲單獨的查詢來完成。

1

您可以用UNION關鍵字將它們結合起來:

SELECT imgURL, imgTitle, FROM images 
UNION 
SELECT DISTINCT imgFamily, NULL FROM images 
UNION 
SELECT DISTINCT imgClass, NULL FROM images 

但它是一個非常糟糕的主意。後續查詢中的所有列必須與所有後續查詢中的列具有相同的類型,否則某些數據可能會被截斷。

通常,您不應該組合無關的查詢。

1
SELECT distinct imgURL, imgTitle, imgFamily, imgClass 
FROM images 

上面會給你獨特的一行。

SELECT imgURL, imgTitle, imgFamily, imgClass 
FROM images 

這一個會給你所有的數據。

很難弄清楚你正在嘗試做什麼。