0

私はSQLの完全な初心者です。データベースにクエリを実行し、結果を処理するプログラムを使用しています。デフォルトのクエリは次のとおりです。

SELECT * 
FROM data, 
     questions, 
     users 
where users.U_Id = data.Subj_Id 
  and data.Subj_Id between 1 and 10 
  and data.Q_Id = questions.Q_Id 
  and questions.Q_Id between 1 and 10 
order by Subj_Id;

Subj_Idevery and everyを照会したいと思いますQ_Id。どちらもいくつあるかわかりませんが、科目によって問題数が異なります。上記のクエリをどのように変更すればよいですか?

4

1 に答える 1

4

上記のクエリを次のように書き換えることができます。

select * 
from 
    data 
        inner join 
    users on users.U_Id = data.Subj_Id 
        inner join 
    questions on data.Q_Id = questions.Q_Id 
where data.Subj_Id between 1 and 10 
and questions.Q_Id between 1 and 10 
order by Subj_Id; 

これにより、テーブル間の結合をデータのフィルターから分離することで、より明確になります。したがって、データベース全体をクエリするにはwhere、上記の句を削除するだけです...

select * 
from 
    data 
        inner join 
    users on users.U_Id = data.Subj_Id 
        inner join 
    questions on data.Q_Id = questions.Q_Id 
order by Subj_Id; 
于 2012-10-09T18:23:53.577 に答える