[英]MySQL combine two columns into rows
我在做这个查询
SELECT
ub_properties.title,
ub_level_two.level_two AS level_two,
ub_autocomplete.level_two AS level_two_extra,
ub_utility.utility AS utility,
ub_autocomplete.utility AS utility_extra
FROM ub_properties
LEFT JOIN ub_meta ON ub_properties.post_id=ub_meta.post_id
LEFT JOIN ub_level_two ON ub_meta.level_two_id=ub_level_two.id
LEFT JOIN ub_utility ON ub_meta.utility_id=ub_utility.id
LEFT JOIN ub_autocomplete ON ub_meta.autocomplete_id=ub_autocomplete.id
WHERE ub_properties.user_id=1
并得到以下结果:
请注意,列level_two和level_two_extra-它们应该在同一列中。 因此,本质上,我需要将这两列的结果合并为一列(将在结果集中产生更多的行)。
我不能在这里使用CONCAT,因为出于技术原因,我希望它们各自排成一行。
任何将我指向正确方向的建议将不胜感激。 到处搜寻都没有成功。
----编辑,解决方案---- (感谢@drpetermolnar)
SELECT
ub_properties.title,
ub_level_two.level_two,
ub_utility.utility
FROM ub_properties
LEFT JOIN ub_meta ON ub_properties.post_id=ub_meta.post_id
LEFT JOIN ub_level_two ON ub_meta.level_two_id=ub_level_two.id
LEFT JOIN ub_utility ON ub_meta.utility_id=ub_utility.id
WHERE ub_properties.user_id=1
UNION
SELECT
ub_properties.title,
ub_autocomplete.level_two,
ub_autocomplete.utility
FROM ub_properties
LEFT JOIN ub_meta ON ub_properties.post_id=ub_meta.post_id
LEFT JOIN ub_autocomplete ON ub_meta.autocomplete_id=ub_autocomplete.id
WHERE ub_properties.user_id=1
使用UNION
关键字https://dev.mysql.com/doc/refman/5.7/en/union.html编写两个仅在一个地方不同的SELECT
语句:第一个使用level_two
,第二个使用level_two_extra
。 与UNION
结合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.