2015-04-24 24 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