2012-09-17 235 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