2012-09-17 162 views
1

我有两个表与下面的描述:合并两个表

record(record_id,min_index,max_index) 

points(point_id,point_name,val1,val2,rank), point_id being on auto-increment 

min_indexmax_index记录表指向点表中的point_ids。即对于特定记录,各个点是> = min_index并且< = max_index。

我需要合并这两个表,使得最后的表类似于这样的事情

points(point_id,record_id,point_name,val1,val2,rank) 

我知道这是对的规范化标准,但这似乎与问题我已经工作得很好。我不确定如何合并这两张表。

+0

您可以张贴在每个表和预期结果的一些样本数据? – Taryn

回答

2

只是join表使用MySQL的BETWEEN ... AND ...运营商指定的加盟条件:

SELECT points.point_id, 
     record.record_id, 
     points.point_name, 
     points.val1, 
     points.val2, 
     points.rank 
FROM points JOIN record ON 
     points.point_id BETWEEN record.min_index AND record.max_index 
+0

谢谢。这当然有帮助。我尝试了同样的方法,但没有加入,对结果并不满意。 – pratz

0
SELECT a.point_id, 
    b.record_id, 
    a.point_name, 
    a.val1, 
    a.val2, 
    a.rank 
from points a , record b 
where ((point_id>=min_index)and (point_id<=max_index)) 
+0

我试过这个,但没有连接,最终结果不匹配到原始值。所以是的,我们错过了加入。 – pratz