我不确定我是否正确地提出了这个问题,我会尝试解释一下我的意思。
我有以下查询:
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 |
+------------------+---------+
这就是我需要删除名为whois_price
的第3列和插入它作为另一行具有相同的price
值和< em>连接 name_ascii
值与&#34; whois&#34;作为item
列。
我不知道如何解决它。有什么建议吗,提示?
谢谢!
答案 0 :(得分:2)
实现这一目标的一种方法是使用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')
第一部分获得价格,第二部分获得whois价格。 这是一个SQL小提琴:http://sqlfiddle.com/#!9/d5164/3