ホームページ >データベース >mysql チュートリアル >リスト内のすべてのテストに合格した車を選択するにはどうすればよいですか?
すべてのテストを正常に完了した車両のフィルタリング
指定されたリストから必要なすべてのテストに合格した車両を効率的に特定するには、特に複数のテストを扱う場合、単純な IN
オペレーターチェックよりも洗練された方法が必要です。 より正確なアプローチでは、GROUP BY
句と HAVING
句の機能を活用します。
事前定義されたセット内のすべてのテストに合格した自動車を選択するには、次の SQL クエリを検討してください。
<code class="language-sql">SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4</code>
このクエリは結果を carname
でグループ化し、HAVING
句を COUNT(DISTINCT testtype)
とともに使用します。これにより、4 つの異なるテスト タイプ (リストに 4 つのテストがあると仮定) に合格した車両のみが出力に含まれるようになります。
より包括的な結果を得るには、これをサブクエリとして cars
テーブルに組み込むと、追加の車の詳細を取得できます。
<code class="language-sql">SELECT * FROM cars WHERE carname IN ( SELECT carname FROM PassedTest GROUP BY carname HAVING COUNT(DISTINCT testtype) = 4 )</code>
この改良されたクエリでは、定義されたリスト内のすべてのテストに合格した自動車を正確かつ完全に選択できます。
以上がリスト内のすべてのテストに合格した車を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。