今天遇到一个问题,就是a,b 两张表,本无外键关联关系,但是a表的某个字段,和b表的某个字段有数值上的关联关系。
举个栗子:
table_a
taID minMoney maxMoney
1 10 100
2 100 1000
table_b
tbID money
1 50
2 200
我想得到的结果集是
minMoney maxMoney money
10 100 50
100 1000 200
针对这个需求可以一条sql搞定:
select a.*,(select money from table_b where a.minNum<money and a.maxNum>money) as money from table_a a
这里需要注意的是,子查询中一次只可以拿出一个字段,而且子查询中返回结果集只能是一条,而且where条件中一定要用到a表的条件