Php Mysql:变量表上的左连接

Php Mysql:变量表上的左连接,php,mysql,join,conditional-statements,Php,Mysql,Join,Conditional Statements,我对复杂的SQL查询有问题 我有三张桌子: 用户, 用户类型1, 用户类型2 我试图根据用户的类型选择用户的详细信息。 我尝试使用CASE为左连接动态选择表名,但失败了。 我也尝试使用UNION,但似乎列必须是相同的 唯一有效的方法是联接两个表,但结果也包含错误表中的所有空值 我正在寻找一种方法来消除这些错误的字段,或者只对好表执行左连接 这是我目前的代码: SELECT user.*, user_type1.*, user_type2.* FROM user LEFT

我对复杂的SQL查询有问题

我有三张桌子: 用户, 用户类型1, 用户类型2

我试图根据用户的类型选择用户的详细信息。 我尝试使用CASE为左连接动态选择表名,但失败了。 我也尝试使用UNION,但似乎列必须是相同的

唯一有效的方法是联接两个表,但结果也包含错误表中的所有空值

我正在寻找一种方法来消除这些错误的字段,或者只对好表执行左连接

这是我目前的代码:

SELECT
    user.*,
    user_type1.*,
    user_type2.*
FROM user
LEFT JOIN user_type1
    ON user_type1.user_id = user.id
LEFT JOIN user_type2
    ON user_type2.user_id = user.id
AND user.id = 1
通常我只做非常简单的查询,所以我有点困惑。如果你能帮助我,谢谢你

编辑: 主表是user,只有两个字段:ID和Type

其他表包含有关用户的详细信息。 用户类型1适用于人。字段包括姓名、年龄等

用户类型2适用于公司。字段包括姓名、法律形式、员工人数等

所以我只知道用户表中的ID,我需要获取好表的字段


如果user.id为1,user.type为type1,我希望mysql从user_type1表中获取所有字段…

则必须选择不为null的列,如下所示:

SELECT
    user.*,
    user_type1.*,
    user_type2.*
FROM user
LEFT JOIN user_type1
    ON user_type1_id = user.id
LEFT JOIN user_type2
    ON user_type2.user_id = user.id
AND user.id = 1
AND table.column_name IS NOT NULL
您可以尝试以下方法:-

select * 
from user, user_type1, user_type2 
where user_type1.user_id = user.id and user_type2.user_id = user.id AND user.id = 1

用户\u类型1\u id,是拼写错误吗?用户类型1。id@Deepanshu是的,对不起。它是user\u type1.user\u id。