2011-07-18 121 views
1

我有兩張表需要加入,我不確定如何操作。我仍然在努力學習如何加入工作,我知道有一堆不同的種類。這裏是我的表:SQL加入語句

laser feature1 feature2 feature3 
laser1 1   1   0 
laser2 1   0   1 
laser3 1   1   0 


feature_name feature_text 
Feature #1  Text 1 
Feature #2  Text 2 
Feature #3  Text 3 

我如何把這兩個表連接在一起,所以我只得到feature_names和feature_texts那裏是在頂級表1?

+1

什麼/連接條件在哪裏? – Neal

+0

這是一對一,一對多還是多對多的關係? –

+0

多對多...... – sehummel

回答

3

這裏有一個更好的結構:

laser (Table) 
------------- 
laser_name, laser_id 

feature (Table) 
--------------- 
feature_name, feature_texts, feature_id 

feature_laser (Table) 
--------------------- 
laser_id, feature_id 

編輯

如果你想看到什麼激光器與FEATURE_ID = 1相關聯,那麼你可以加入這樣的:

select laser_name from laser 
    inner join feature_laser on feature_laser.laser_id = laser.laser_id 
where feature_id = 1; 

如果您想查看與laser_id = 1相關的功能,那麼您可以像這樣加入:

select feature_name from features 
    inner join feature_laser on feature_laser.feature_id = features.feature_id 
where laser_id = 1; 
+0

這使得更多的意義。謝謝,看守人。我的JOIN聲明是什麼? – sehummel

+0

完美。謝謝,看守人。 – sehummel

2

假設feature1,fetaure2等是列,您將無法以優雅的方式對聯接進行此操作,因爲您的數據庫未正確歸一化。您需要丟失這些列並製作laser_feature鏈接表以首先獲得適當的多對多關係。

+0

這就是頂級餐桌應該是什麼。它應該如何構建? – sehummel