SQL - JOIN上的多个子句?

时间:2012-05-10 04:37:20

标签: sql

让我先发布我的数据库结构。 表:monsterdata - http://prntscr.com/92eet 表:user_team - http://prntscr.com/92eef

我希望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 个答案:

答案 0 :(得分:5)

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

你去吧!

答案 1 :(得分:2)

试试这个。

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)

答案 2 :(得分: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)