我在做这个查询
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
答案 0 :(得分:1)
使用UNION
关键字https://dev.mysql.com/doc/refman/5.7/en/union.html
编写只在一个地方有所不同的两个SELECT
语句:第一个使用level_two
,第二个使用level_two_extra
。与UNION
结合使用。