2012-05-10 32 views
1

讓我先發布我的數據庫結構。 表:monsterdata - http://prntscr.com/92eet 表:user_team - http://prntscr.com/92eefSQL - JOIN上的多個子句?

我想在user_team數據(M1,M2,M3,M4,M5,M6)與monsterdata.id相匹配,使得我可以檢索等信息。我設法做的是隻獲取一個數據

SELECT * FROM monsterdata LEFT JOIN user_team ON monsterdata.id=user_team.m1 

但我真正想要做的是,包括M2,M3,M4,M5,M6以monsterdata.id = user_team.X

這可能會很愚蠢,但我更愚蠢的是不去想如何做到這一點。 感謝您的幫助!

回答

3
SELECT * 
    FROM monsterdata LEFT JOIN user_team 
    ON monsterdata.id=user_team.m1 AND/OR 
    monsterdata.id=user_team.m2 AND/OR ... 

你走了!

1

試試這個。

SELECT * FROM monsterdata 
LEFT JOIN user_team 
ON (monsterdata.id=user_team.m1 
OR monsterdata.id=user_team.m2 
OR monsterdata.id=user_team.m3 
OR monsterdata.id=user_team.m4 
OR monsterdata.id=user_team.m5 
OR monsterdata.id=user_team.m6) 
+0

該訣竅@JonasEverest –

0

您可以使用此條件:

SELECT * FROM monsterdata 
LEFT JOIN user_team 
ON monsterdata.id = COALESCE(
    user_team.m1,user_team.m2,user_team.m3, 
    user_team.m4,user_team.m5,user_team.m6)