[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите новчику составить sql запрос
verhmax
Плиз, прошу помощи, осваивают LEFT JOIN
и хочу реализовать такое:
таблица города, есть название и id города (не id строки)
есть таблица школы: название, id школы и id города
Известно, что не во всех населенных пунктах есть школы.
как вывести из таблицы городов те города, у которых школ > 0
?
и вывести ещё эту колонку count(shcool) чтоб для наглядности проверить правильность запроса.

Заранее всем спасибо.
kaww
Для решения задачи лучше подойдет inner join.
Вариант с LEFT JOIN:
SELECT city.*, COUNT(*) AS school_total
FROM city
LEFT JOIN school ON school.city_id=city.id
WHERE school.id IS NOT NULL

Вариант с INNER JOIN:
SELECT city.*, COUNT(*) AS school_total
FROM city
INNER JOIN school ON school.city_id=city.id
verhmax
INNER JOIN - очень интересный пример, спасибо, постараюсь изучить
Но он вывел мне всего одну строку, в которой есть количество найденых совпадений, а как вывести все строки?
kaww
Цитата (verhmax @ 29.10.2017 - 16:36)
Но он вывел мне всего одну строку, в которой есть количество найденых совпадений

Забыл group by добавить: В оба запроса нужно дописать GROUP BY city.id:
SELECT city.*, COUNT(*) AS school_total
FROM city
INNER JOIN school ON school.city_id=city.id
GROUP BY city.id
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.