php - mysql : left join on variable table

标签 php mysql join conditional-statements

我在执行复杂的 SQL 查询时遇到问题。

我有 3 张 table : 用户, 用户类型1, 用户类型2

我正在尝试根据用户的类型选择用户的详细信息。 我尝试使用 CASE 为 LEFT JOIN 动态选择表名,但失败了。 我也尝试过使用 UNION,但似乎列必须相同。

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

我正在寻找一种方法来摆脱这些错误的字段,或者只对好表进行 LEFT JOIN。

这是我当前的代码:

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,只有2个字段:ID和Type。

其他表包含有关用户的详细信息。 user_type1 是针对人的。这些字段是姓名、年龄...

user_type2 适用于公司。这些字段包括姓名、法律形式、员 worker 数……

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

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

最佳答案

你可以试试这个:-

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

关于php - mysql : left join on variable table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18378000/

相关文章:

php - MySQL中如何设置自增值从1开始?

php - 如何查询表并输出平均值、总和、位置、

SQL。如何正确组合子查询和连接?

sql - 请求其他表中至少有 2 条记录

php - Ajax 使用方法 load() 获取选择字段中的选项值

PHP 停用词表

php - json_encode,[括号]中需要的关联数组

php - Zend Action Helper 未加载*有时*

mysql - SQL Group By Column 没有一个值

list - 在CMake中加入列表的最佳/最短方法