2016-04-20 4 views
0

私は正しく質問のタイトルをつけているかどうかわかりませんが、私が例を挙げて説明しようとします。次返し列の値を行にします

SELECT 
    d.name_ascii, 
    d.price, 
    t.whois_price 
FROM domain d 
    JOIN tld t ON d.tld_id = t.id 
    JOIN user_tld ut ON t.id = ut.tld_id 
WHERE ut.user_id = 1 
    AND d.name_ascii IN ('domain.com') 

私は、次のクエリを持って

+------------+---------+-------------+ 
| name_ascii | price | whois_price | 
+------------+---------+-------------+ 
| domain.com | 321.000 | 15.000  | 
+------------+---------+-------------+ 

それは大丈夫ですが、私は次の結果必要があります。

+------------------+---------+ 
|  item  | price | 
+------------------+---------+ 
| domain.com  | 321.000 | 
| domain.com whois | 15.000 | 
+------------------+---------+ 

私がする必要があります削除第3列whois_priceに挿入し、別の行に同じprice値とを連結して、列としてname_ascii値と "whois"を連結します。

どのように解決するかわかりません。アドバイス、ヒント?

ありがとうございます!

答えて

2

これを達成する1つの方法は、UNIONを使用することです。

SELECT 
    d.name_ascii as item, 
    d.price 
FROM domain d 
WHERE d.name_ascii IN ('domain.com') 
UNION ALL 
SELECT 
    concat(d.name_ascii,' whois'), 
    t.whois_price 
FROM domain d 
    JOIN tld t ON d.tld_id = t.id 
    JOIN user_tld ut ON t.id = ut.tld_id 
WHERE ut.user_id = 1 
    AND d.name_ascii IN ('domain.com') 

第1部分は価格を取得し、第2部分はwhois価格を取得します。 ここではSQLフィドルです:http://sqlfiddle.com/#!9/d5164/3

+0

恐ろしいです!ありがとう! – mineroot

関連する問題