私はテストで行われたグレード3の学生を返す次のSQLクエリを持っています。
生徒1は試験で0を作ったので、質問結果は2人の生徒の成績のみを返します。どのようにして結果にゼロを含めることができますか?どのように私はSQLでカウント関数を使用して0を返すことができます
select u.uno, u.fname, u.lname, count(q.qno) as Test1 from ((users u
LEFT OUTER JOIN userresponse ur on ur.uno = u.uno) left outer join
question q on q.correctanswer = ur.response and q.qno = ur.qno and
q.eno = ur.eno) where q.eno = '1' group by u.uno, u.fname, u.lname
ur.enoが試験1で、その後、u.unoだけのテーブルを結合する=ユーザーが権利ur.unoを得たものを質問番号と受験番号参加しているとq.corectanswer = ur.responseチェックを問います。
どのデータベースについてですか?これは、ANSI-89 JOIN構文(クエリ)を使用しない理由です。OUTER JOINはサポートされていませんが、副選択は同等です(相関性の低い副問合せは効果的ではありません)。 –
@OMGPonies - ほとんどのデータベースでは非推奨の外部結合機能があります(通常は '+'や '*'で比較を飾ることに基づいています)が、ANSI結合に移動するほうがはるかに良いということに同意します –
@Damien_The_Unbeliever:はい、ありますベンダー固有のものでもあります。 [SQL Server](http://stackoverflow.com/questions/1428144/sql-what-does-mean)、[Oracle](http://stackoverflow.com/questions/2425960/oracle-old-joins-a-)変換のためのツールスクリプト) –