2011-08-13 59 views
0

我需要在列source上排列行。然而,這裏是我查詢表(簡體):按字母順序排列mysql-query,給出一個數字的字符串?

+---+-------+-----+ 
|id |source |foo | 
+---+-------+-----+ 
|1 |5  |hey | 
|2 |7  |yo | 
+---+-------+-----+ 

,這裏是來源:

+---+-------+ 
|id |name | 
+---+-------+ 
|5 |First | 
|7 |Awesome| 
+---+-------+ 

現在,如果我用這樣的查詢:

SELECT * FROM table ORDER BY source 

。結果將按來源的ID排序,而不是實際的名稱。我可以簡單地在PHP中訂購結果,但我正在尋找一個sql解決方案(如果可用)。

任何幫助將不勝感激!

回答

2

聽起來像是你只需要加入表一起,就像這樣:

SELECT * FROM table, sources WHERE table.source = sources.id ORDER BY sources.name 

假設你的源代碼表被稱爲源...

0

我不知道我很明白它是什麼,你會發現MySQL對命令結果的排序方式令人驚訝,但是如果你想按照字母順序排列結果,你需要按名稱而不是源排序,因爲source是一個整數。

+0

我並不覺得奇怪,但我根本不知道克里斯提到的方法。 –

+0

這只是一個隱含的連接。你可以在http://en.wikipedia.org/wiki/Join_%28SQL%29找到更多細節 –

相關問題