首页 > 解决方案 > MySQL查询查找住在同一州的女孩

问题描述

阙 - 找出属于同一州的女学生。 学生桌

SELECT (A.NAME),B.NAME,A.STATE,B.STATE,A.GENDER,B.GENDER.
FROM STUDENT A
JOIN STUDENT B 
ON (A.STATE = B.STATE)AND A.NAME!=B.NAME AND (A.GENDER=B.GENDER) AND A.GENDER ="F";

根据上面的查询,如果A和B满足条件,B和A也满足,在这种情况下,有两个元组AB和BA,实际上不需要,因为AB就足够了。

您需要进行哪些修改?

谢谢你。

标签: mysqlsql

解决方案


将名称上的不等式检查更改为不等式

SELECT A.NAME, B.NAME, A.STATE, B.STATE, A.GENDER, B.GENDER.
FROM STUDENT A
INNER JOIN STUDENT B 
    ON A.STATE = B.STATE AND
       A.NAME < B.NAME AND
       A.GENDER = b.GENDER AND
WHERE
    A.GENDER = 'F';

需要明确的是,该标准A.NAME < B.NAME将确保每对学生匹配项仅包含按字典顺序排列的较小名称,后跟较大的名称。


推荐阅读