簡體   English   中英

將兩個MYSQL查詢列結果合並為一個,以在ORDER BY中使用

[英]Combine two MYSQL Queries column result into one to use in ORDER BY

我有兩個查詢來獲取用戶硬幣和寶石的價值。 我可以分別獲取每個字段值,但我希望它們一起作為加法值。.(硬幣+寶石)值在ORDER BY中使用

使用此SQL查詢,我可以獲取錢幣字段值...

SELECT user_id, meta_value as total_coins FROM wp_usermeta WHERE meta_key = '_coin' AND meta_value > 0 ORDER BY meta_value+0 DESC LIMIT 0,10

硬幣查詢結果

並使用它來獲取gems字段值...

SELECT user_id, meta_value as total_gems FROM wp_usermeta WHERE meta_key = '_gems' AND meta_value > 0 ORDER BY meta_value+0 DESC LIMIT 0,10

寶石查詢結果

我想要的是獲取_coin字段值,然后為該user_id獲取_gem字段值,然后將這兩個值合而為一...就像690 + 21 = 711作為total_points ..像這樣。

`SELECT ( 

    SELECT meta_value FROM `wp_usermeta` as ue1

    WHERE meta_key = '_coin' AND meta_value > 0 ORDER BY meta_value+0 DESC LIMIT 0,50

) AS coins,
( 

    SELECT meta_value FROM `wp_usermeta` as ue2 

    WHERE ue2.user_id = ue1.user_id AND meta_key = '_gem' AND meta_value > 0 ORDER BY meta_value+0 DESC LIMIT 0,50

) AS gems,

coins+gems AS total_points

FROM wp_usermeta

ORDER BY total_points LIMIT 0, 50`

我知道此SQL不正確,這就是為什么我需要幫助..請幫助我以更正此SQL

而不是幾個子查詢,您應該使用聯接相同的表並重復代碼以進行添加

  SELECT ue1.meta_value coins , ue2.meta_value gems
       , ue1.meta_value + ue2.meta_value total_points
  FROM `wp_usermeta` as ue1
  INNER JOIN `wp_usermeta` as ue2 ON ue1.user ue2.user_id = ue1.user_id
      AND ue1.meta_key = '_coin' 
        AND ue2. meta_key = '_gem'
  WHERE ue1.meta_value > 0 
  AND   ue2.meta_value > 0 
  ORDER BY total_points LIMIT 0, 50

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM