-Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в Flashr

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 26.02.2007
Записей:
Комментариев:
Написано: 6574


IT girlfriend

Вторник, 27 Октября 2009 г. 17:44 + в цитатник
Пиарщики проекта books.ru устроили забавный конкурс, предложив айтишникам описать девушек своей мечты при помощи SQL запроса - http://habrahabr.ru/blogs/i_am_insane/73212/. Стоящий вариант на мой взгляд один, но и он содержит грубейшие ошибки. В идущем ниже запросе стоилобы все сравнения count(*) с нулем заменить на left join нужный таблиц с проверкой на null индексного значения.

Copy Source | Copy HTML
  1. SELECT
  2.     face_image,
  3.     first_name,
  4.     last_name,
  5.     phone_number
  6. FROM
  7.     humanity
  8. WHERE
  9.     gender = 'woman' -- Под понятие идеальной девушки попадает только женский пол, я думаю…
  10.  
  11.     AND NOT married -- не замужем, не женатая
  12.     AND (SELECT COUNT(*) FROM humanity WHERE mother_id = humanity.id) = 0 -- без детей
  13.     AND social_status IN ('student', 'employee', 'business lady') -- не сидит впросидь дома
  14.  
  15.     AND weight / POW(height, 2) BETWEEN 17 AND 22 -- Индекс Массы Тела
  16.     AND breast_size BETWEEN 2 AND 4 -- Рамер груди
  17.  
  18.     AND iq_index BETWEEN 95 AND 110 -- Не глупая, но и не перегибая палку
  19.     AND (SELECT COUNT(DISTINCT word) FROM spoken_words WHERE human_id = humanity.id) > 6000 -- Есть, о чём поговорить
  20.  
  21.     AND cooking_level /*+ football_interesting*/ + computer_education > /*220*/ 180 -- Любые комбинации приветствуются
  22.  
  23.     AND (
  24.         SELECT
  25.             COUNT(*)
  26.         FROM
  27.             books
  28.             JOIN bag_content ON bag_content.object_id = books.id AND bag_content.object_type = 'books'
  29.             JOIN bag ON bag.id = bag_content.bag_id
  30.         WHERE
  31.             bag.owner_id = humanity.id
  32.             AND books.author_last_name = 'Донцова'
  33.     ) = 0 -- Без комментариев
  34.  
  35.     AND NOT smoking -- !!! 
Метки:  

 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку