2015-04-24 78 views
0
SELECT * FROM 
    mtc_employee_master EB, 
    mtc_employee_education_master EE, 
    mtc_employee_experience_master EEXP, 
    mtc_employee_salary_master ES 
WHERE 
    EB.id=16 AND 
    EE.emp_tbl_id=EB.id AND 
    EEXP.emp_tbl_id=EB.id AND 
    ES.emp_tbl_id=EB.id 

如果数据在所有表格中可用,上述查询可以正常工作。现在,我想从mtc_employee_master中提取哪些输出记录,因为表格包含记录为必填表格,而其他记录不包含记录。使用左加入我已经成功了两个表四个表格之间的左连接

SELECT * FROM 
    mtc_employee_master EB 
LEFT JOIN 
    mtc_employee_education_master EE 
ON 
    EB.`id` = EE.`emp_tbl_id` 
WHERE 
    EB.id=16 

而是停留在加盟的所有four..please给你输入

+0

在这个之后加入其他的LEFT JOIN不起作用? –

+0

请添加标记您的DBMS – Jens

回答

2

试试这个:

SELECT * FROM mtc_employee_master EB 
    left join mtc_employee_education_master EE on EE.emp_tbl_id=EB.id 
    left join mtc_employee_experience_master EEXP on EEXP.emp_tbl_id=EB.id 
    left join mtc_employee_salary_master ES on ES.emp_tbl_id =EB.id 
    WHERE EB.id=16 
+0

SELECT * FROM EB mtc_employee_master LEFT JOIN mtc_employee_education_master EE ON EE.'emp_tbl_id' = EB.'id' LEFT JOIN mtc_employee_experience_master EEXP ON EEXP.'emp_tbl_id' = EB.'id' LEFT JOIN mtc_employee_salary_master ESAL ON ESAL.'emp_tbl_id' = EB.'id' WHERE EB.''' = 16 working ... emp_tbl_id instead of id..thanks – DevLakshman

+0

@DevLakshman从您的查询中复制而来。 – Jens

+0

哦,是的..纠正。 – DevLakshman

0

做这样的(EDITED) :

SELECT EB.* 
FROM mtc_employee_master EB left join 
(SELECT EE.id var FROM mtc_employee_education_master EE 
    join mtc_employee_experience_master EEXP on EE.id=EEXP.id 
    join mtc_employee_salary_master ES 
    on ES.id=EEXP.id) temp 
    on EB.id= temp.var 
where EB.id=16; 
+0

错误为Erreur de syntaxeprèsde'FROM mtc_employee_master EB left 。加入 (EE SELECT * FROM mtc_employee_education”点菜LIGNE 2 – DevLakshman

+0

@DevLakshman,见我的编辑答案 –

+0

抱歉,但error..Error代码:1248 每一个派生表必须有它自己的别名 – DevLakshman

0
SELECT * FROM 
    mtc_employee_master EB, 
    mtc_employee_education_master EE, 
    mtc_employee_experience_master EEXP, 
    mtc_employee_salary_master ES 
WHERE 
    EB.id=16 AND 
    IFNULL(EE.emp_tbl_id,0)IN(EB.id,0) AND 
    IFNULL(EEXP.emp_tbl_id,0)IN(EB.id,0) AND 
    IFNULL(ES.emp_tbl_id,0)IN(EB.id,0) 
+0

错误代码:1582 调用本地函数'ISNULL'时参数数量不正确 – DevLakshman

+0

Mysql eh ...查看修改后的语句 – user3289372