2017-08-15 13 views
1

adminテーブルからdisplay_on_website値が1の行を選択するためにこのクエリを実行しています。admin_metaテーブルにあります。テーブル内のSQL順序の行を別のテーブルの値で

SELECT 
       a.sequence as sequence, 
       CONCAT(a.forename, ' ', a.surname) as name, 
       a.position as position 
      FROM 
       admin a, admin_meta am 
      WHERE 
       a.disabled = '' AND 
       a.sequence = am.user AND 
       am.field = 'display_on_website' AND 
       am.value = '1' 

Iはwebsite_orderあるユーザ毎admin_metaテーブル内の行を持っている - 私はこの値で注文できますか?

+0

'ORDER BY am.website_order' ?? –

+1

ここ数十年の間に、カンマ・ジョイン構文を教えたり励ましたりしている人はいますか? ( "恐ろしい"はあなたの批判ではなく、文法そのものである) – Uueerdo

+0

それは、各ユーザのためにその値を取得するための別のSELECTクエリになるので、役に立たない。 – charlie

答えて

2

admin_metaテーブルに2回、display_on_websiteの値を取得するために1回参加し、再びwebsite_order値を注文する必要があります。

SELECT a.sequence, CONCAT(a.forename, ' ', a.surname) AS name, a.position 
FROM admin AS a 
JOIN admin_meta AS m1 on a.sequence = m1.user 
JOIN admin_meta AS m2 ON a.sequence = m2.user 
WHERE a.disabled = '' 
AND am1.field = 'display_on_website' AND am1.value = '1' 
AND am2.field = 'website_order' 
ORDER BY CAST(am2.value AS DECIMAL) 
+0

あなたは全体の質問を読んで、私たちを悪く見せます。 ;) – Uueerdo

関連する問題