我有 2 个表格,代表 2 个不同的模型模拟。作为背景信息,这 2 个模型试图模拟相同的事物,但 modelA 试图表示非常具体的属性,而 modelb 试图模拟更广泛的范围。表 A 有 n 行,大于表 B 中的 m 行。我正在尝试创建一个与表 A 具有相同行数 (n) 的表,在该表中我可以看到哪些 modelA_ID 与 modelB_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
但是 region 不是唯一的键,所以我不能这样做!
几天前刚接触 SQL,但来自 cshell 背景,但新工作只有 sql 政策:-(
有任何想法吗?这不是必须经常重复的事情,因此效率不是关键。
谢谢