テーブルを表示するために自分のWebサイトに実装されるSQLクエリに取り組んでいます。この特定のクエリは、カウントする数で1つのテーブルセルのみを埋めます。
現在、以下の最後のINNER JOINのおかげで、表5で主キー(column1)が3回未満検出された場合にのみ、行がカウントされます。これまで、クエリは完全に機能します。
SELECT COUNT (a.column1) AS test
FROM Table1 a
INNER JOIN Table2 b ON […]
INNER JOIN Table3 c ON […]
INNER JOIN Table4 d ON […]
INNER JOIN (SELECT column1 FROM Table 5 GROUP BY column1 HAVING COUNT (column1)<3) e ON e.column1=a.column1
WHERE a.column2 IS NULL
問題は、Table5には表示されない(ただしTable1には存在する)行もカウントしたいということです。現在、これを機能させる唯一の方法は、次のコードを追加することです。
AND a.column1 NOT IN (SELECT f.column1 FROM Table5 f)
ただし、最後のINNER JOINが含まれていない場合にのみ機能し、両方の制約で機能させることはできません。基本的に、要約すると、主キー(column1)がtable5に3回未満しか表示されない場合、または単にtable5に表示されない場合は、行をカウントしたいと思います。
ありがとうございました。