Предлагаю выкладывать в данной теме интересные, неоднозначные задачки, заставляющие моск пошевилиться Новичкам будет полезно почитать и поучится, а ветеранам в этом нелегком деле - поулучшать и попредлагать свои варианты решения. Для примера приведу задачку, котороя мне сегодня попалась (друг спросил): Есть таблица, назовем ее tbl, в ней 2 столбца: st1 и st2. В каждом из столбцов какой то набор букв. К примеру: Code: -------------------- tbl -------------------- st1 | st2 -------------------- a | e d | g r | k Так вот - необходимо НЕ используя UNION получить в результирующей выборке содержимое 2-х столбцов в одном столбце, упорядоченным по возрастанию. Т.е. Code: --------- result --------- a d e g k r Запрос вовсе не сложный, но если сразу не догадаться как решать - можно потратить некоторое время на обдумывание Не было - ну да ладн Code: CREATE TABLE `tst` ( `st1` varchar(1) NOT NULL, `st2` varchar(1) NOT NULL ); INSERT INTO `tst` (`st1`, `st2`) VALUES ('a', 'e'), ('d', 'g'), ('r', 'k');
Пойдет? Code: CREATE TEMPORARY TABLE temp TYPE=HEAP SELECT st1 as 'result' FROM tst; INSERT INTO temp SELECT st2 FROM tst; SELECT * FROM temp ORDER BY 'result' ASC; DROP TABLE temp;
Ну.... Никакого полета фантазии Давай без временных таблиц. Тем более что это все сделать необходимо одним запросом.
Использовать представления (VIEW), хранимые функции...? Собственно эти объекты и предназначены для решения проблем такого рода.
Можно. Хотя я без них решил Нет-нет-нет и еще раз нет... Тем более в основе представления так же лежит запрос - какая собственно разница? А в хп обычно группа запросов. Я ж написал - ЗАПРОС... 1 запрос. Ну максимум с подзапросами. А вы тут начали уже городить =) На самом деле запрос достаточно легкий... главное догадаться каким путем идти.
Нет. Никаких DML и тп... Только запрос на выборку. Т.е. select и присущие ему конструкции: можно подзапросы, JOIN'ы, самосоединения и тп.
На тему большинство забило, я же 3 дня листал мануалы на mysql.com. Будте добрвы выскажите тогда пожалуйста наиболее оптимальное решение. Очень интересно.
Это даже костылями назвать сложно Да... наверное на задачку забили. Я сам минут 20 фтыкал, когда мне ее задли... сначала хотел сказать "Низя!", но посидел подумал... и вышел на верное направление Не исключаю что способ решения не один. Если уж совсем не в моготу будет - могу подсказку сказать... правда думаю это практически решение
Да, молодца Можно канешн оттачивать само решение - но направление правильное найдено - использовать условия
Задача: Вопрос: Результат правильного выполнения упражнения: Например Задачи на подобии такой на http://sql-ex.ru/index.php Там просто орвет в текстареа пишешь и смотришь резалт 2 этапа : обучающий, сертификационный вопросов 40 наверно пс Там косячит регистрация, но есть кнопка - вход без регистрации
Ничего нетривиального в данной задаче не вижу Я сейчас занимаюсь расширением функциональности и поддержкой данного проекта Не мог бы ты отписать что там именно косячит? Либо в личку, либо через форму обратной связи. P.S. Этапа там не два а три.
Извините почти оффтоп... Может и забили но не все... жаль что неуспел решить , а то что тема упала, так это потому что нечего было писать так как в наверное были в поисках решения. VDShark, я так понимаю нашли решение не такое как у тебя, ты писал что решил без подзапросов? Хотелось бы еще со столь же простым условием и столь же захватывающее по поиску решения