Вторник, 27 Октября 2009 г. 17:44
+ в цитатник
Пиарщики проекта books.ru устроили забавный конкурс, предложив айтишникам описать девушек своей мечты при помощи SQL запроса - http://habrahabr.ru/blogs/i_am_insane/73212/. Стоящий вариант на мой взгляд один, но и он содержит грубейшие ошибки. В идущем ниже запросе стоилобы все сравнения count(*) с нулем заменить на left join нужный таблиц с проверкой на null индексного значения.
Copy Source | Copy HTML- SELECT
- face_image,
- first_name,
- last_name,
- phone_number
- FROM
- humanity
- WHERE
- gender = 'woman' -- Под понятие идеальной девушки попадает только женский пол, я думаю…
-
- AND NOT married -- не замужем, не женатая
- AND (SELECT COUNT(*) FROM humanity WHERE mother_id = humanity.id) = 0 -- без детей
- AND social_status IN ('student', 'employee', 'business lady') -- не сидит впросидь дома
-
- AND weight / POW(height, 2) BETWEEN 17 AND 22 -- Индекс Массы Тела
- AND breast_size BETWEEN 2 AND 4 -- Рамер груди
-
- AND iq_index BETWEEN 95 AND 110 -- Не глупая, но и не перегибая палку
- AND (SELECT COUNT(DISTINCT word) FROM spoken_words WHERE human_id = humanity.id) > 6000 -- Есть, о чём поговорить
-
- AND cooking_level /*+ football_interesting*/ + computer_education > /*220*/ 180 -- Любые комбинации приветствуются
-
- AND (
- SELECT
- COUNT(*)
- FROM
- books
- JOIN bag_content ON bag_content.object_id = books.id AND bag_content.object_type = 'books'
- JOIN bag ON bag.id = bag_content.bag_id
- WHERE
- bag.owner_id = humanity.id
- AND books.author_last_name = 'Донцова'
- ) = 0 -- Без комментариев
-
- AND NOT smoking -- !!!
Метки:
life
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-