0

これは学生のテーブルです。学生は数学と読書の 2 つの科目を持っています。

2 つの教科は同じ 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_concat と一緒に group を使用して、サブジェクトを 1 つのフィールドにグループ化します。

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 に答える