mysql - 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就足够了。
您需要进行哪些修改?
谢谢你。
解决方案
将名称上的不等式检查更改为不等式:
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
将确保每对学生匹配项仅包含按字典顺序排列的较小名称,后跟较大的名称。
推荐阅读
- python - 模糊匹配两个数据帧并加入结果
- deep-learning - 为 YOLOv3 标注 230k 图像
- swiftui - SwiftUI actionSheet 变成 .tabItem
- java - 不支持的major.minor 版本52.0 Java 1.7,tomcat 7
- excel - 根据数据验证列表使用按钮生成一个数字,并在每次按下时递增
- sql - Access SQL:无法使用 Max() 和 Min() 值更新列表
- html - primeng 可编辑表,发出 pEditableColumn
- activiti - 错误(completionCondition 'All' 不评估为布尔值)从并行多实例用户任务完成一个用户任务
- python-3.x - 在 al 列中查找最常见的字符串
- mysql - Node.js 与 knex + Mysql 迁移错误,而重命名列导致默认值