powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом!
8 сообщений из 8, страница 1 из 1
Нужна помощь с запросом!
    #39980027
Svolpe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!) Новичек в sql, не судите строго, нужна помощь по построению запроса.

Есть две таблицы:

Quizes
---------------------------
id | name
---------------------------
1 Quiz1
2 Quiz2
3 Quiz3

Quetions
----------------------------------------------------
id | name | type | quizId
---------------------------------------------------
1 Question1 Single 1
2 Question2 Multi 1
3 Question3 Extended 1
4 Question4 Extended 1
5 Question5 Extended 2
6 Question6 Extended 2

Нужно получить весь список квизов и дополнительно указать есть ли в нем вопросы с типом Extended.
Results
-----------------------------------
id name isExtended
-----------------------------------
1 Quiz1 1
2 Quiz2 1
3 Quiz3 0

Пока написал так:

SELECT quizes.id as id, quizes.name as name, count(*)>0 as isExtended
FROM quizes
INNER JOIN questions on quizes.id = questions.quizId
WHERE questions.type = 'Extended'
GROUP BY id

И получаю:
-----------------------------------
id name isExtended
-----------------------------------
1 Quiz1 1
2 Quiz2 1

Не совсем понимаю как можно отобразить квизы у которых нет вопросов с данным типом. Возможно стоит испльзовать сочетание sum и count, но пока не понял как это можно сделать.
...
Рейтинг: 0 / 0
Нужна помощь с запросом!
    #39980046
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LEFT JOIN. Остальное нормально.
...
Рейтинг: 0 / 0
Нужна помощь с запросом!
    #39980071
Svolpe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, спасибо за отклик и за совет, упустил этот момент, но все же не хочет работать.

На том же сайте от w3schools.com, можно протестировать аналогичный запрос, и тоже нули не показывает.

https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_join_left

Код: sql
1.
2.
3.
4.
5.
6.
SELECT Customers.CustomerName as  name, count(*)>0 as 'isOrderIn(1996-07-08)'
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
where orders.OrderDate = '1996-07-08'
group By name
...
Рейтинг: 0 / 0
Нужна помощь с запросом!
    #39980117
Фотография Жук в муравейнике
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
SELECT  Customers.CustomerName as  name, case when min(orderdate) is null then 0 else 1 end
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
group By name
...
Рейтинг: 0 / 0
Нужна помощь с запросом!
    #39980120
Фотография Жук в муравейнике
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже скорее так:
Код: sql
1.
2.
3.
4.
SELECT quizes.id as id, quizes.name as name, max(case when type = 'Extended' then 1 else 0 end) as isExtended
FROM quizes
INNER JOIN questions on quizes.id = questions.quizId
GROUP BY id
...
Рейтинг: 0 / 0
Нужна помощь с запросом!
    #39980121
Фотография Жук в муравейнике
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только LEFT JOIN
Код: sql
1.
2.
3.
4.
SELECT quizes.id as id, quizes.name as name, max(case when type = 'Extended' then 1 else 0 end) as isExtended
FROM quizes
LEFT JOIN questions on quizes.id = questions.quizId
GROUP BY id
...
Рейтинг: 0 / 0
Нужна помощь с запросом!
    #39980271
Svolpe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Жук в муравейнике, спасибо! Все работает, осталось понять как это работает)
...
Рейтинг: 0 / 0
Нужна помощь с запросом!
    #39980370
paver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пожалуй что конструкцию
MAX(CASE WHEN type = 'Extended' THEN 1 ELSE 0 END)
можно заменить на
MAX(type = 'Extended')
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]