2 つの異なるモデル シミュレーションを表す 2 つのテーブルがあります。背景情報として、2 つのモデルは同じことをシミュレートしようとしていますが、modelA は非常に具体的な属性を表現しようとしますが、modelb はより広い範囲をモデル化しようとします。テーブル A には、テーブル B の m 行よりも大きい n 行があります。テーブル A と同じ行数 (n) のテーブルを作成しようとしています。このテーブルでは、どのモデル A_ID がモデル B_ID に関連しているかを確認できます。
表 A:
ModelA_ID region height weight
1 1 25 7.1
2 1 70 7.1
3 1 10 7.2
4 1 30 7.3
5 1 35 7.4
6 2 30 7.1
表 B:
ModelB_ID region min_height max_height min_weight max_weight
9001 1 0 50 7.1 7.3
9002 1 51 100 7.1 7.3
9003 1 0 100 7.4 7.5
9004 2 0 100 7.1 7.5
したがって、上記の例では、次の行に沿って何かで終了する必要があります
ModelA_ID ModelB_ID
1 9001
2 9002
3 9001
4 9001
5 9003
6 9004
リージョンはどちらのテーブルでも一意ではありません。もしそうなら、私はそれに参加すると思います。
SELECT TableA.ModelA_ID TableB.ModelB_ID
FROM TableA
inner JOIN TableA
ON TableA.region =TableB.region
where
TableA.height >= TableB.min_height
and TableA.height <= TableB.max_height
and TableA.weight >= TableB.min_weight
and TableA.weight <= TableB.max_weight
ただし、地域は一意のキーではないため、それはできません!
数日前にSQLを初めて使用しましたが、cshellのバックグラウンドから来ましたが、新しいジョブにはSQLのみのポリシーがあります:-(
何か案は?頻繁に繰り返さなければならないものではないので、効率は重要ではありません。
ありがとう