【发布时间】:2014-08-25 17:56:38
【问题描述】:
假设我在桌子下面
学生:
id Name
-------------------
1 john
2 carlos
3 zoya
4 arab
5 amir
和,
电子邮件:
id email student_id
--------------------------
1 a@mail.com 1
2 b@mail.com 2
3 c@mail.com 2
4 d@mail.com 3
5 e@mail.com 4
并使用 sql 查询获取学生姓名和电子邮件,
SELECT student.name, email.eid FROM student
INNER JOIN email
ON student.id = email.student_id
它会给出以下输出,
Name eid
-------------------
john a@mail.com
carlos b@mail.com
carlos c@mail.com
zoya d@mail.com
amir e@mail.com
这里返回了carlos 的重复条目(实际上并非重复),
但我只想要像这样的单个学生列表,(b@gmail.com 或 c@gmail.com 无关紧要)。
Name eid
-------------------
john a@mail.com
carlos b@mail.com
zoya d@mail.com
amir e@mail.com
我对sql没有太多经验,
我用过DISTINCT,但它不起作用..请帮助
不:我将电子邮件存储在不同的表中,以备将来需要。
【问题讨论】:
-
你可以使用
GROUP BY name -
哪一个?为什么是 b 而不是 c
-
这不是重复条目,用户 carlos 有两封不同的电子邮件。如果你不想要两个 carlos 用户,你可以 GROUP BY。
-
感谢评论员建议
GROUP By特别是@MKhalidJunaid .. 结果完全符合预期。 -
@user3710243 - 如果您有不同的错误,您应该提出一个新问题,而不是修改您的旧问题,这会使已经给出的答案毫无用处。