0

mysqlに関して問題があります。

course、、、papersのようなテーブルがいくつかありstudentsますstudentspapers

今私が欲しいのは、私のクエリが次のような結果を返す必要があるということです。

学生の名前、学生のテーブルからの学生のカテゴリ、学生の論文からの学生のオプションの論文を選択する必要がありますが、学生の論文の表ではなく、論文の表で何も言及していません。

ペーパーテーブルには、studentspaperで外部キーとして使用した主キーとしてidがあります。

今私が使用している簡単なクエリは次のとおりです。

select
  st.name,
  s.paperid
from
  students st,
  sps s join papers
  on paperid
where
  paperid = (select p.p_id from papers p where type='optional')
  and st.course=1

どうしようかわからない。

その言うサブクエリは複数の行を返します#1242

4

2 に答える 2

4

この場合、SQLを次のように変更する必要があります。

select st.name, s.paperid 
from students st, sps s join papers on paperid 
where paperid in (select p.p_id from papers p where type='optional') and st.course=1

「=」を「in」に変更しました。

これで問題が解決するはずです。

于 2012-07-18T17:48:24.137 に答える
0

あなたの質問は:

select st.name, s.paperid
from students st,
     sps s join
     papers
     on paperid
where paperid= (select p.p_id from papers p where type='optional') and st.course=1

学生とspsの間の結合が欠けています。私はあなたが意味すると思います:

select st.name, s.paperid
from students st join
     sps s
     on st.studentid = sps.studentid join
     papers p
     on p.paperid = sps.paperid
where p.type='optional' and st.course=1

ただし、テーブルの構造を見ないと、これが正しいクエリであるかどうかを判断するのは困難です。

于 2012-07-18T18:19:54.563 に答える