MySQL查询:如何返回至少在一个表中出现的唯一名称?
解决方案
要获取两个表中至少出现一次的唯一名称,你可以用UNION操作符合并两个表的Nome字段,UNION会自动去除重复值,正好满足需求。
原查询的问题
- 仅从
phonebook-bad表取数据,无法获取phonebook-good里独有的michelee - 额外添加的
where phonebook-bad.telefono='102004'过滤条件,直接排除了Anna这类非目标手机号的记录 - 左连接在这里没有发挥作用,因为查询逻辑被限制为只能拿到匹配该手机号的记录
正确的SQL查询
SELECT Nome FROM phonebook-good UNION SELECT Nome FROM phonebook-bad;
执行后会返回所有唯一名称:
+----------+ | Nome | +----------+ | Giulio | | michelee | | Anna | +----------+
无论名称只在哪个表中存在,都会被包含在结果里。
内容的提问来源于stack exchange,提问作者elbarna
相关产品推荐
相关产品推荐

