SQL-连接上的多个子句?

SQL-连接上的多个子句?,sql,Sql,让我先发布我的数据库结构。 表:数据- 表:用户团队- 我希望用户_团队(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\u team.X中 这可能很傻,但我更傻的是不

让我先发布我的数据库结构。 表:数据- 表:用户团队-

我希望用户_团队(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\u team.X中

这可能很傻,但我更傻的是不知道怎么做。 谢谢你的帮助

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

试试这个

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)

您可以使用以下条件:

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)

Hi@Jonas,假设其中一个(user_team.m1)为空会怎么样?查询将返回数据还是放弃该行?如果它是一个,那么它就会被丢弃。但因为它是一个OR,所以只要其中至少有一个不是空的,它就不会丢弃。对吗?