0

这是学生表学生有两个科目数学和阅读

这两个科目注册了相同的 id 我只想在这里显示数学学生,条件是主键(sid,subject);

sid    fname   lname    subject  phno
---    -----   -----    -------- -----
1      vvk     v        math     4444
1      vvk     v        read     4444
2      hari    h        math     5555
2      hari    h        read     5555

3      kalyan  k        read     6666

如何显示学生的单条记录,该学生已参加数学科目或已阅读,如下所示:

1      vvk     v        math     4444 
2      hari    h        math     5555
3      kalyan  k        math     6666

这里 sid 和 subject 是复合主键,如果请在 mysql 中将查询写入上述结果

4

1 回答 1

2

就像我在评论中提到的那样,您应该规范化您的表格,您当前的结构效率低下。

在此之前使用 group 和 group_concat 它将主题组合到一个字段中

SELECT 
    sid,fname,lname,phno,group_concat(subject) as subjects 
FROM 
    tablename 
GROUP BY 
    sid

会产生类似的东西

3  kalyan  k  6666  math,read
于 2013-06-29T13:45:55.920 回答