[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как избавиться от Union
McLotos
Всем привет. Есть такой запрос:
(select `answer_date`, `answer` from `log_kisa` where `iin`='$iin' and `method`='kisa1' order by `id` desc limit 2)
union
(select `answer_date`, `answer` from `log_kisa` where `iin`='$iin' and `method`='kisa2' order by `id` desc limit 2)
union
(select `answer_date`, `answer` from `log_kisa` where `iin`='$iin' and `method`='ip' order by `id` desc limit 2)
union
(select `answer_date`, `answer` from `log_kisa` where `iin`='$iin' and `method`='iin' order by `id` desc limit 2)

Как получить те же данные только без union?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
depp
именно этот скорее всего никак. мешает ордер и лимит в 2 записи.
но я почему то уверен, что переделав немного структуру - можно сделать все это в один запрос. для чего вы делаете выборку по полю "method"?
McLotos
Цитата (depp @ 13.03.2017 - 15:44)
вы делаете выборку по полю "method"?

потому-что для каждого типа method нужно получить 2 последние записи по конкретному iin

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
sergeiss
А чем тебе мешает ЮНИОН? Выбрал ты нужные 2 записи по одному критерию, пристегнул к ним другие 2 записи, по другому критерию и так далее. В чем проблема, что именно не нравится?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
McLotos
Цитата (sergeiss @ 13.03.2017 - 16:15)
А чем тебе мешает ЮНИОН?

ресурсы жрет, да и join быстрее отрабатывает чем union

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Игорь_Vasinsky
select `answer_date`, `answer` from `log_kisa` where (`iin`,`method`) 
in (
(
"$iin", 'kisa1'),
(
"$iin", 'kisa2'),
(
"$iin", 'ip'),
(
"$iin", 'inn')
)

limit 2


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sergeiss
Игорь_Vasinsky, но так будет всего 2 записи выбрано, насколько я понимаю.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
depp
да, две. а надо 8. по 2 на каждый метод.
Игорь_Vasinsky
Цитата
limit 2

а ну да.. ступил. юнион есть юнион

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
McLotos
т.е. получается что никак нельзя это сделать? Просто я вчера целый рабочий день голову ломал, так ничего и не получилось

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Valick
McLotos, есть вариант чтоб не ломать голову, надо книжки читать smile.gif
Есть такие вещи как денормализация и изменение архитектуры БД (об этом уже намекал depp)
Как только перестанете относится к БД как к помойке, где покопавшись можно найти всё что угодно, она ответит вам взаимностью.

Цитата (McLotos @ 13.03.2017 - 13:25)
ресурсы жрет, да и join быстрее отрабатывает чем union

с индексами всё в порядке?


_____________
Стимулятор ~yoomoney - 41001303250491
McLotos
Цитата (Valick @ 14.03.2017 - 09:01)
Есть такие вещи как денормализация и изменение архитектуры БД (об этом уже намекал depp)

Есть такие вещи как "экстренная правка в боевом проекте" и "командная работа над проектом" со всеми вытекающими.
Цитата (Valick @ 14.03.2017 - 09:01)
Как только перестанете относится к БД как к помойке, где покопавшись можно найти всё что угодно, она ответит вам взаимностью.

Никто к ней так и не относится, просто раздувание количества таблиц ни к чему хорошему в данном конкретном случае не приведет, в конце концов это всего лишь логи одного модуля.
Цитата (Valick @ 14.03.2017 - 09:01)
с индексами всё в порядке?

да

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.