[英]Mysql query using UNION
$sql = "SELECT `employee`.`employee_id`, `employee`.`employee_pre_code`, `employee`.`employee_code`, `employee`.`employee_name`, `employee`.`active`, `designation`.`designation_name`, `employeetype`.`employee_type_name`, `supervisor`.`supervisor_id`, `incharge`.`incharge_id`, `subsection`.`subsection_id`, `section`.`section_id`, `floor`.`floor_id`, `unit`.`unit_id`, `attendance_summery`.`present_days`,`attendance_summery`.`working_days`
FROM `employee` LEFT JOIN `designation` ON `employee`.`designation_id`=`designation`.`designation_id`
LEFT JOIN `employeetype` ON `employee`.`employee_type_id` = `employeetype`.`employee_type_id`
LEFT JOIN `supervisor` ON `supervisor`.`supervisor_id` = `employee`.`supervisor_id`
LEFT JOIN `incharge` ON `incharge`.`incharge_id` = `supervisor`.`incharge_id`
LEFT JOIN `subsection` ON `subsection`.`subsection_id` = `incharge`.`subsection_id`
LEFT JOIN `section` ON `section`.`section_id` = `subsection`.`section_id`
LEFT JOIN `floor` ON `floor`.`floor_id` = `section`.`floor_id`
LEFT JOIN `unit` ON `unit`.`unit_id` = `floor`.`floor_id`
WHERE `employee`.`unit_id` = '1' AND `employee`.`active` = 1
UNION
SELECT `employee`.`employee_id`, `employee`.`employee_pre_code`, `employee`.`employee_code`, `employee`.`employee_name`, `employee`.`active`, `designation`.`designation_name`, `employeetype`.`employee_type_name`, `supervisor`.`supervisor_id`, `incharge`.`incharge_id`, `subsection`.`subsection_id`, `section`.`section_id`, `floor`.`floor_id`, `unit`.`unit_id`, `attendance_summery`.`present_days`,`attendance_summery`.`working_days` FROM `employee`
LEFT JOIN `attendance_summery` ON `attendance_summery`.`employee_id` = `employee`.`employee_id`
WHERE `attendance_summery`.`payment_period_id` = 36
ORDER BY `employee`.`employee_name` ASC";
$query = $this->db->query($sql);
return $query->result_array();
發生數據庫錯誤
錯誤編號:1054
“字段列表”中的未知列“ attendance_summery.present_days”
但是存在'attendance_summery.present_days'
列。
我找不到查詢問題。
誰能幫忙。
在聯合的第一個查詢中未選擇Attenance_summery表。
您將不得不添加;
LEFT JOIN `attendance_summery` ON `attendance_summery`.`employee_id` = `employee`.`employee_id
到您的sql的第一個選擇。 您需要測試每個字段並添加它們。
您難道不認為attendance_summery
表是select list
一部分時,它不應該是第一個查詢的FROM
子句的一部分嗎? 我不能看到attendance_summery
表在FROM CALUSE
這是小姐!
我的主要問題是在聯接表中使用多個條件。 在加入時,最后增加了兩個條件attendance_summery
桌子和關鍵字它連接,只有匹配的行$paymentPeriodId
變量。 滿足了我想要的。 再次感謝Jerome Anthony
和Nitin Tripathi
。 我更新的查詢為:
$sql = "SELECT `employee`.`employee_id`, `employee`.`employee_pre_code`, `employee`.`employee_code`, `employee`.`employee_name`, `employee`.`active`, `designation`.`designation_name`, `employeetype`.`employee_type_name`, `supervisor`.`supervisor_id`, `incharge`.`incharge_id`, `subsection`.`subsection_id`, `section`.`section_id`, `floor`.`floor_id`, `unit`.`unit_id`, `attendance_summery`.`present_days`, `attendance_summery`.`working_days` "
. "FROM `employee` "
. "LEFT JOIN `designation` ON `employee`.`designation_id`=`designation`.`designation_id`"
. "LEFT JOIN `employeetype` ON `employee`.`employee_type_id` = `employeetype`.`employee_type_id`"
. "LEFT JOIN `supervisor` ON `supervisor`.`supervisor_id` = `employee`.`supervisor_id`"
. "LEFT JOIN `incharge` ON `incharge`.`incharge_id` = `supervisor`.`incharge_id`"
. "LEFT JOIN `subsection` ON `subsection`.`subsection_id` = `incharge`.`subsection_id`"
. "LEFT JOIN `section` ON `section`.`section_id` = `subsection`.`section_id`"
. "LEFT JOIN `floor` ON `floor`.`floor_id` = `section`.`floor_id`"
. "LEFT JOIN `unit` ON `unit`.`unit_id` = `floor`.`floor_id`"
. "LEFT JOIN `attendance_summery` ON (`attendance_summery`.`employee_id` = `employee`.`employee_id` AND `attendance_summery`.`payment_period_id` = $paymentPeriodId )"
. "WHERE `employee`.`unit_id` = '1' AND `employee`.`active` = '1' "
. "ORDER BY `employee`.`employee_name` ASC";
$query = $this->db->query($sql);
return $query->result_array();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.