0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 18
|
|||||||||||||||||
1 | |||||||||||||||||
нужно составить запрос09.05.2013, 20:08. Показов 787. Ответов 4
Метки нет (Все метки)
Ребята, всем привет. Нужна ваша помощь. Имеется следующая таблица School:
Нужно создать запрос который находит те классы в которых преподают ВСЕ преподаватели (т.е вывод должен иметь только В)
0
|
09.05.2013, 20:08 | |
Ответы с готовыми решениями:
4
Нужно составить SQL запрос Нужно правильно составить запрос Нужно составить запрос с группировками Нужно составить запрос на удаление строк по id |
1177 / 419 / 106
Регистрация: 31.03.2012
Сообщений: 1,145
|
||||||
10.05.2013, 08:49 | 2 | |||||
не самый оптимальный , но что-то еще придумывать было лениво. На этих тестовых данных выдает "B". Дополнительно не проверял.
0
|
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
|
||||||
10.05.2013, 10:13 | 3 | |||||
0
|
1177 / 419 / 106
Регистрация: 31.03.2012
Сообщений: 1,145
|
|
10.05.2013, 12:14 | 4 |
Поздравляю, я и не думал, что так легко напишу простой и совершенно не оптимальный код, но ты меня переплюнул, спасибо!
Вывод для explain на одних и тех же данных Код
mysql> explain select p from ( -> select m,p from x group by p,m) as a -> group by p having count(a.p) = (select count(*) from (select distinct m from x) b); +----+-------------+------------+------+---------------+------+---------+------+------+---------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+------------+------+---------------+------+---------+------+------+---------------------------------+ | 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 10 | Using temporary; Using filesort | | 3 | SUBQUERY | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away | | 4 | DERIVED | x | ALL | NULL | NULL | NULL | NULL | 11 | Using temporary | | 2 | DERIVED | x | ALL | NULL | NULL | NULL | NULL | 11 | Using temporary; Using filesort | +----+-------------+------------+------+---------------+------+---------+------+------+---------------------------------+ 4 rows in set (0.00 sec) mysql> explain SELECT `Class` FROM ( -> SELECT DISTINCT `Class` FROM `School`) AS `c` -> WHERE 1 = ALL ( -> SELECT EXISTS ( -> SELECT * FROM `School` AS `s` -> WHERE `s`.`Teacher` = `t`.`Teacher` AND `s`.`Class` = `c`.`Class`) -> FROM ( -> SELECT DISTINCT `Teacher` FROM `School`) AS `t`); +----+--------------------+------------+------+---------------+------+---------+------+------+-----------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+--------------------+------------+------+---------------+------+---------+------+------+-----------------+ | 1 | PRIMARY | <derived2> | ALL | NULL | NULL | NULL | NULL | 3 | Using where | | 3 | DEPENDENT SUBQUERY | <derived5> | ALL | NULL | NULL | NULL | NULL | 4 | Using where | | 5 | DERIVED | School | ALL | NULL | NULL | NULL | NULL | 11 | Using temporary | | 4 | DEPENDENT SUBQUERY | s | ALL | NULL | NULL | NULL | NULL | 11 | Using where | | 2 | DERIVED | School | ALL | NULL | NULL | NULL | NULL | 11 | Using temporary | +----+--------------------+------------+------+---------------+------+---------+------+------+-----------------+ 5 rows in set (0.00 sec)
1
|
Vovan-VE
|
11.05.2013, 08:14
нужно составить запрос
#5
|
Не по теме: Joeymax, Мне всё равно не даёт покоя мысль, что должен быть способ лучше. :umbrage:
0
|
11.05.2013, 08:14 | |
Нужно составить запрос на выборку за последние 7 дней Нужно составить запрос Нужно задать sql запрос. не понимаю как. Нужно из одной таблицы вывести данные Составить запрос Составить запрос Составить запрос Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |