Не уверен, почему я получаю только одну строку с неправильным счетом!
Ниже приводится рабочий код:
SELECT project_name, sub_project_name
FROM projects, sub_projects
WHERE projects.project_id = sub_projects.projects_project_id
Результат:
project_name sub_project_name
Bakken Ghost fracture Study
Bakken Bakken Mylo QAQC
Bossier Doyle Boles K No.1
Eagleford Kennedy Unit#1H
Eagleford Wehmeyer Unit #1
Niobrara Crow Valley 7-62-32-1M
Poland Poland
Woodford Ridenour Phase 2
Woodford Teague 1-14H
Каждый подпроектимеет несколько таблиц, и я в основном пытаюсь увидеть, есть ли в столбце в одной из таблиц какая-либо строка, содержащая ненулевые значения, а затем показать, что счетчик рядом с sub_project в другом столбце для каждого sub_project.
Вот что я получаю, когда запрашиваю следующий оператор:
SELECT projects.project_name, sub_projects.sub_project_name, COUNT( bl.bl_por ) AS porosity
FROM projects, sub_projects
LEFT JOIN bl ON sub_projects.sub_project_id = bl.sub_project_id
WHERE projects.project_id = sub_projects.projects_project_id
Результат:
project_name sub_project_name porosity
Bakken Ghost fracture Study 99
Все строки из каждого подпроекта в первой строке и ничегоеще.
Что здесь не так?
Редактировать:
Решение Эрвина прибило его.Но у меня нет sub_project_id
в моих таблицах.Я просто добавил его в одну таблицу, чтобы упростить его для тестирования.
Поэтому я использовал предложение Эрвина GROUP BY
, чтобы отредактировать свое утверждение, и я получил правильную форму матрицы, но не правильные значения.Отсчет времени отсрочен.
SELECT p.project_name, sp.sub_project_name, COUNT( bl.bl_por ) AS porosity
FROM projects p, sub_projects sp, wells w, cores c, samples s, inputs i
LEFT JOIN bl ON i.inputs_id = bl.inputs_inputs_id
WHERE p.project_id = sp.projects_project_id
AND s.sample_id = i.samples_sample_id
AND c.core_id = s.cores_core_id
AND sp.sub_project_id = c.sub_projects_has_wells_sub_projects_sub_project_id
GROUP BY p.project_name, sp.sub_project_name
Результат:
project_name sub_project_name porosity
Bakken Bakken Mylo QAQC 147
Bakken Ghost fracture Study 252
Bossier Doyle Boles K No.1 189
Eagleford Kennedy Unit#1H 294
Eagleford Wehmeyer Unit #1 0
Niobrara Crow Valley 7-62-32-1M 0
Poland Poland 714
Woodford Ridenour Phase 2 483
Woodford Teague 1-14H 0
Правильный результат должен быть:
Bakken Bakken Mylo QAQC 7
Bakken Ghost fracture Study 12
Bossier Doyle Boles K No.1 9
Eagleford Kennedy Unit#1H 14
Eagleford Wehmeyer Unit #1 0
Niobrara Crow Valley 7-62-32-1M 0
Poland Poland 34
Woodford Ridenour Phase 2 23
Woodford Teague 1-14H 0