如何通过两个匹配的字段查询两个表,但只显示一个匹配的结果?

时间:2018-02-11 02:48:26

标签: mysql

以下查询显示了table1和table2中Mascot + Zip匹配字段的行。大!问题是这可能会返回多个匹配和可能的误报。为了避免这种情况,我只希望查询在只有1个匹配时返回结果。我下面的代码将返回Tigers:47483行。如果有超过1个匹配,我不想要任何返回。如何设置此限制?

.bash_profile

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

约翰的答案,

SELECT *,count(*) FROM sports1 t1
JOIN  sports2 t2 ON (t1.Mascot=t2.Mascot AND t1.Zip=t2.Zip)
GROUP BY 1,2 HAVING count(*)=1;

对于“ONLY_FULL_GROUP_BY”错误,请运行:

SET sql_mode ='';

答案 1 :(得分:-1)

SELECT t1.Mascot,t1.Zip 来自Sports1 t1,Sports2 t2 WHERE(t1.Mascot = t2.Mascot AND t1.Zip = t2.Zip)GROUP by t1.Mascot,t1.Zip  有计数(DISTINCT t1.Mascot,t1.Zip)= 1;

使用此功能,您只能获得1场比赛