2013-07-16 120 views
-1

我需要從我的用戶表中選擇結果,並按照存儲在rtgitems中的評級對它們進行排序。在用戶表中,每個用戶都有一個唯一的ID,用於項目列中的r​​tgitems,如rt_(來自users表的ID)。使用另一個表中的數據從mysql表中選擇

這裏是我用來從用戶表中選擇代碼:

$result = mysqli_query($con,"SELECT * FROM users WHERE `approved` = 1 ORDER BY "); 

下面是代碼來從rtgitems表中的評級

SELECT `item` 
     , (`totalrate`/`nrrates`) AS `rank` 
FROM `rtgitems` 
ORDER BY (`totalrate`/`nrrates`) DESC 
+0

已嘗試搜索多次 – Chris78

+0

我做了,找不到任何東西,我總是在發帖之前先做一個搜索 –

+0

你只需要使用一個內部連接,你有什麼嘗試? – enl8enmentnow

回答

1

像這樣的查詢應該返回指定的結果集:

SELECT u.* 
    , r.totalrate/r.nrrates AS `rank` 
    FROM users u 
    JOIN rtgitems r 
    ON r.user_id = u.id 
WHERE u.approved = 1 
ORDER BY r.totalrate/r.nrrates DESC, u.id ASC 

簡要說明:JOIN運算符根據ON子句中的謂詞指定來自兩個表(用戶和rtgitems)的行應該「匹配」。

每當在查詢中引用多個表時,最佳做法是限定所有列引用。爲每個表引用分配一個唯一的別名通常是最簡單的。 (這是對用戶表和rtgitems表分別給出的簡稱ur,對這些表中列的引用前面帶有別名和點(句點)

+0

問題是,在用戶的id字段中,它只是一個數字,但在rtgitems中它是rt_,然後是數字 –

+0

,不會產生任何結果 –

+0

沒關係,這只是因爲id字段實際上是user_id ,所以我明白了,謝謝你的幫助 –

相關問題