【发布时间】:2011-06-24 04:13:44
【问题描述】:
我有一个查询在 MySQL 中返回多行,如下所示:
attribute_name value
----------------------------------------
username emailuser
domain mydomain.com
我需要的输出如下:
username domain
-----------------------------
emailuser mydomain.com
当前 SQL:
SELECT pa2.attribute_name, upa2.value
FROM product p
INNER JOIN product_attribute pa ON p.product_id = pa.product_id
AND pa.attribute_name = 'alias'
INNER JOIN user_product_attribute upa ON pa.product_attribute_id upa.product_attribute_id
INNER JOIN user_product_attribute upa2 ON upa.user_product_id = upa2.user_product_id
INNER JOIN product_attribute pa2 ON pa2.product_attribute_id = upa2.product_attribute_id
AND pa2.attribute_name
IN (
'username', 'domain'
)
WHERE p.product_name = 'email'
AND upa.value = 'emailalias@domainalias'
我一直在查看 group_concat,但我认为这是错误的路径。有什么建议吗?
【问题讨论】:
-
我想你已经在your previous question 中找到了答案。只需将my answer的第一行修改为:
SELECT upa1.value as username, upa2.value as domain -
嗨,乔,感谢您再次查看我的一个问题。upa1 用于拉回与别名匹配的值。upa2 将用户名和域作为单独的行返回 2 个值。跨度>
标签: mysql stored-procedures concat