特定の制約に対してテーブル B に同等のアイテムが存在するテーブル A からアイテムを選択しようとしています。テーブル A には ID ごとに 1 つの行がありますが、テーブル A の行ごとに多くの行があります。
select distinct A.id
from A inner join B on B.a_id = A.id
where B.x >= 5 and B.x <= 10;
テーブル A の行ごとに 1 つの行のみを取得するために使用できる SQL 結合句があるかどうか疑問に思います。
私が理解しているように、クエリは制約を見つけ、内部結合を実行してから、これに対して個別に実行します。これが正しく、データベースに A とは異なる行のみを取得するように指示するより良い方法がある場合は、知りたいです。クエリのセマンティクスの制約内で、クエリを解釈して実行する方法はたくさんあると確信しています。explain
出力を理解しているとは言えません。
これを簡単にする方法はありますか?それが違いを生むなら、私はSQLiteに制約されています。
編集
制約句には、クエリ時に定義された 2 つの制約があり、これを追加しました。私は質問をできるだけ単純にしようとしましたが、コメントに応じて完全を期すために余分な節を追加しました.