2017-02-12 6 views
0

У меня есть два запроса ниже, первый из них - это запрос для моих DataTables, а второй для обычной таблицы HTML.JOINING 2 MYSQL-запросы

Первый запрос:

SELECT a.*, b.personnel_name 
FROM `work_order` as a 
LEFT JOIN `personnel_master_data` as b ON a.`reg_no` = b.`reg_no` 
WHERE a.`status` = 'Continue' 
GROUP BY `id` 
$sOrder 
$sLimit 

Я выполнил запрос в моем файле PHP и DataTables работает отлично, а теперь второй запрос:

SELECT d.`wo_number`, SUM(d.`crew_est` * d.`manhour_est`) AS 'crew_kali_manhours', 
    CONCAT(((SUM(d.`crew_est` * d.`manhour_est`)/
      (SELECT SUM(c.`crew_est` * c.`manhour_est`) 
      FROM `work_sheet_machine` AS c 
      WHERE c.`wo_number` = '$wo_number')) * 100)) AS `progress` 
FROM `work_sheet_machine` AS d 
WHERE d.`status` = 'FINISH' AND d.`wo_number` = '$wo_number' 

Второй запрос кажется хорошо работает на регулярной Таблица HTML с параметрами GET. Мне нужно присоединиться к второму запросу с первым запросом и использовать этот запрос на DataTables файл обработки на стороне сервера. У меня возникла проблема с присоединением поля progress от второго запроса к первому запросу.

+0

Что вы подразумеваете под общим? 'wo_number' существуют в таблицах' work_sheet_machine' и 'work_order'. –

ответ

0

Поместите второй запрос в первый как подзапрос.

SELECT a.*, b.personnel_name, e.crew_cali_manhours, e.progress 
FROM `work_order` as a 
LEFT JOIN `personnel_master_data` as b ON a.`reg_no` = b.`reg_no` 
LEFT JOIN (
    SELECT d.`wo_number`, SUM(d.`crew_est` * d.`manhour_est`) AS 'crew_kali_manhours', 
     CONCAT(((SUM(d.`crew_est` * d.`manhour_est`)/
       (SELECT SUM(c.`crew_est` * c.`manhour_est`) 
       FROM `work_sheet_machine` AS c 
       WHERE c.`wo_number` = d.wo_number)) * 100)) AS `progress` 
    FROM `work_sheet_machine` AS d 
    WHERE d.`status` = 'FINISH' 
    GROUP BY wo_number 
) AS e ON e.wo_number = a.wo_number 
WHERE a.`status` = 'Continue' 
GROUP BY `id` 
$sOrder 
$sLimit 

Использование INNER JOIN instea из LEFT JOIN, если это work_sheet_machine всегда совпадающих строк для строк в work_order.

+0

он работает. О, МОЙ БОГ! Спасибо большое. Вы спасли мою жизнь. :-D –