2015-08-06 4 views
0
SELECT `mpeda_fish`.`id`, `mpeda_fish`.`fish` as analysis, sum(mpeda_fishdetails.quantity) as qty 
FROM (`mpeda_fishdetails`) 
INNER JOIN `mpeda_scientificfish` ON `mpeda_scientificfish`.`id` = `mpeda_fishdetails`.`scientificfish` 
INNER JOIN `mpeda_fish` ON `mpeda_fish`.`id` = `mpeda_scientificfish`.`fish` 
INNER JOIN `mpeda_fishcatch` ON `mpeda_fishcatch`.`id` = `mpeda_fishdetails`.`fishcatch` 
INNER JOIN `mpeda_harbour` ON `mpeda_harbour`.`id` = `mpeda_fishcatch`.`harbour` 
WHERE `mpeda_fishcatch`.`status` = 1 
ORDER BY `mpeda_fishdetails`.`id` ASC 

Этот запрос получает 2 столбца нулевого значения, а один столбец получает данные внутри почему?mysql internal join return null value,

+0

Вы использовали функцию SUM в своем запросе, но я не вижу никакой группы по условию. –

+0

Посеять пример – Jens

ответ

0

Вы используете функцию SUM(). Чтобы получить осмысленные результаты, у вас должно быть предложение group by.

SELECT `mpeda_fish`.`id`, `mpeda_fish`.`fish` as analysis, sum(mpeda_fishdetails.quantity) as qty 
FROM (`mpeda_fishdetails`) 
INNER JOIN `mpeda_scientificfish` ON `mpeda_scientificfish`.`id` = `mpeda_fishdetails`.`scientificfish` 
INNER JOIN `mpeda_fish` ON `mpeda_fish`.`id` = `mpeda_scientificfish`.`fish` 
INNER JOIN `mpeda_fishcatch` ON `mpeda_fishcatch`.`id` = `mpeda_fishdetails`.`fishcatch` 
INNER JOIN `mpeda_harbour` ON `mpeda_harbour`.`id` = `mpeda_fishcatch`.`harbour` 
WHERE `mpeda_fishcatch`.`status` = 1 
GROUP BY `mpeda_fish`.`id`, `mpeda_fish`.`fish` 
ORDER BY `mpeda_fishdetails`.`id` ASC