Mysql 将列值设为行

Mysql 将列值设为行,mysql,sql,doctrine,Mysql,Sql,Doctrine,我不确定我的题目是否正确,我将试着用例子来解释我的意思 我有以下疑问: 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') 返回以下内容: +-----------

我不确定我的题目是否正确,我将试着用例子来解释我的意思

我有以下疑问:

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\u price
的第三列,并将其作为具有相同
price
值的另一行插入,并将
name\u ascii
值与作为
项的“whois”列连接起来

我不知道怎么解决它。有什么建议,提示吗


谢谢

实现这一目标的一种方法是建立工会

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')
第一部分得到价格,第二部分得到谁的价格。
这里有一个SQL问题:

实现这一点的一种方法是使用联合

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')
第一部分得到价格,第二部分得到谁的价格。 下面是一个SQL小提琴: