Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Построение запроса / 11 сообщений из 11, страница 1 из 1
15.01.2015, 15:16:12
    #38855306
Nelzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
Всем привет.

Есть 1) запрос

Код: sql
1.
select * from `deals` inner join `tagging_tagged` on `tagging_tagged`.`taggable_id` = `deals`.`id` where `deals`.`deleted_at` is null and `tagging_tagged`.`taggable_type` = 'Deals' and `tagging_tagged`.`tag_name` in ('222') group by `deals`.`id`



Есть 2) запрос

Код: sql
1.
SELECT * FROM `deals` WHERE `deals`.`deleted_at` is null 



Как мне теперь после is null второго запроса пихнут первый запрос?

Чтоб работало примерно так
Код: sql
1.
2.
3.
SELECT * FROM `deals` WHERE `deals`.`deleted_at` is null 
and  inner join `tagging_tagged` on `tagging_tagged`.`taggable_id` = `deals`.`id` 
and  `tagging_tagged`.`taggable_type` = 'Deals' and `tagging_tagged`.`tag_name` in ('222') group by `deals`.`id`
...
Рейтинг: 0 / 0
15.01.2015, 17:48:33
    #38855487
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
NelzzКак мне теперь после is null второго запроса пихнут первый запрос?

Чтоб работало примерно так
Первый запрос именно так и работает. А чем он не устраивает, собсно?
...
Рейтинг: 0 / 0
16.01.2015, 07:54:37
    #38855734
Nelzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
AkinaNelzzКак мне теперь после is null второго запроса пихнут первый запрос?

Чтоб работало примерно так
Первый запрос именно так и работает. А чем он не устраивает, собсно?

Да,так он работает. Первый запрос должен быть после второго запроса. Мне так нужно.

У меня подстраиваться разные запросы.
Код: sql
1.
SELECT * FROM `tasks` WHERE `tasks`.`deleted_at` is null and $var



В общем мне надо чтоб бы в таком виде работал

Код: sql
1.
2.
3.
SELECT * FROM `deals` WHERE `deals`.`deleted_at` is null 
and  inner join `tagging_tagged` on `tagging_tagged`.`taggable_id` = `deals`.`id` 
and  `tagging_tagged`.`taggable_type` = 'Deals' and `tagging_tagged`.`tag_name` in ('222') group by `deals`.`id`
...
Рейтинг: 0 / 0
16.01.2015, 09:10:14
    #38855782
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
ЗАЧЕМ? Всё равно условие будет перенесено в общую секцию условий - сервер не станет строить план запроса по твоей хотелке, сам он это сделает лучше.
Нет, именно желаемое тобой вполне реализуемо:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT * FROM 
( SELECT * 
  FROM `deals` 
  WHERE `deals`.`deleted_at` IS NULL
) `deals2`
INNER JOIN `tagging_tagged` ON `tagging_tagged`.`taggable_id` = `deals2`.`id` 
WHERE  `tagging_tagged`.`taggable_type` = 'Deals' 
AND `tagging_tagged`.`tag_name` IN ('222') 
GROUP BY `deals2`.`id`


но работать будет не быстрее, чем
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT * 
FROM `deals` 
INNER JOIN `tagging_tagged` ON `tagging_tagged`.`taggable_id` = `deals`.`id` 
WHERE `deals`.`deleted_at` IS NULL 
AND  `tagging_tagged`.`taggable_type` = 'Deals' 
AND `tagging_tagged`.`tag_name` IN ('222') 
GROUP BY `deals`.`id`


а скорее всего даже медленнее.

Так что остаётся вопрос - НАХУА?
...
Рейтинг: 0 / 0
16.01.2015, 10:26:23
    #38855853
Nelzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
AkinaЗАЧЕМ? Всё равно условие будет перенесено в общую секцию условий - сервер не станет строить план запроса по твоей хотелке, сам он это сделает лучше.
Нет, именно желаемое тобой вполне реализуемо:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT * FROM 
( SELECT * 
  FROM `deals` 
  WHERE `deals`.`deleted_at` IS NULL
) `deals2`
INNER JOIN `tagging_tagged` ON `tagging_tagged`.`taggable_id` = `deals2`.`id` 
WHERE  `tagging_tagged`.`taggable_type` = 'Deals' 
AND `tagging_tagged`.`tag_name` IN ('222') 
GROUP BY `deals2`.`id`


но работать будет не быстрее, чем
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT * 
FROM `deals` 
INNER JOIN `tagging_tagged` ON `tagging_tagged`.`taggable_id` = `deals`.`id` 
WHERE `deals`.`deleted_at` IS NULL 
AND  `tagging_tagged`.`taggable_type` = 'Deals' 
AND `tagging_tagged`.`tag_name` IN ('222') 
GROUP BY `deals`.`id`


а скорее всего даже медленнее.

Так что остаётся вопрос - НАХУА?

Я уже объяснил после
Код: sql
1.
SELECT * FROM `tasks` WHERE `tasks`.`deleted_at` is null and $var 

в переменном идет разные запросы инпутов если инпута нету,такой запрос не идет. В запросе идет те инпуты который значение есть и по нему строиться запрос.

Запрос может идти так
Код: sql
1.
SELECT * FROM `tasks` WHERE `tasks`.`deleted_at` is null  AND DATE(`created_at`) BETWEEN '2015-01-10' AND '2015-01-16'



и так
Код: sql
1.
SELECT * FROM `tasks` WHERE `tasks`.`deleted_at` is null AND `user_id` IN (1,3)



и так
Код: sql
1.
SELECT * FROM `tasks` WHERE `tasks`.`deleted_at` is null AND `user_id` IN (1,3) AND DATE(`created_at`) BETWEEN '2015-01-15' AND '2015-01-15' AND `responsible_ids` IN (1,3)



и так
Код: sql
1.
SELECT * FROM `tasks` WHERE `tasks`.`deleted_at` is null   AND `responsible_ids` IN (1,3)



заметил в начале идет SELECT * FROM `tasks` WHERE `tasks`.`deleted_at` is null

НАХУА это нужен?) Для фильтра)
...
Рейтинг: 0 / 0
16.01.2015, 10:59:28
    #38855898
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
Nelzzв переменном идет разные запросы инпутов если инпута нету,такой запрос не идет. В запросе идет те инпуты который значение есть и по нему строиться запрос.
Это вполне спокойно шаблонизируется конструкцией типа (в терминах PHP-скрипта, строящего строку запроса)
Код: sql
1.
WHERE (`field` = '$var' OR '$var' = '')


Если в "инпуте" ничего не передано - в $var лежит пустая строка, истинна вторая часть условия и следовательно, всё условие, причём это вычисляется сравнением констант-литералов ещё на стадии построения плана.
Если там что-то передано - то вторая часть ложна и просто игнорируется, что опять-таки вычисляется на стадии построения плана.
...
Рейтинг: 0 / 0
16.01.2015, 13:39:46
    #38856125
Nelzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
AkinaNelzzв переменном идет разные запросы инпутов если инпута нету,такой запрос не идет. В запросе идет те инпуты который значение есть и по нему строиться запрос.
Это вполне спокойно шаблонизируется конструкцией типа (в терминах PHP-скрипта, строящего строку запроса)
Код: sql
1.
WHERE (`field` = '$var' OR '$var' = '')


Если в "инпуте" ничего не передано - в $var лежит пустая строка, истинна вторая часть условия и следовательно, всё условие, причём это вычисляется сравнением констант-литералов ещё на стадии построения плана.
Если там что-то передано - то вторая часть ложна и просто игнорируется, что опять-таки вычисляется на стадии построения плана.

У нас так и работает. Если в инпуте нечего нету,запроса соответственно не идет. Сверху and это каждый запрос инпута,значение который есть.

И этот join тэга тоже нужно пихнут как эти запросы.

Покажите пример такого запроса, как можно красиво сделать, с sql у меня так себе.На php я сам разделю.

не понятно WHERE (`field` = '$var' OR '$var' = '')

Думаю теперь вы меня поняли.
...
Рейтинг: 0 / 0
16.01.2015, 22:52:27
    #38856572
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
NelzzДумаю теперь вы меня поняли.Нет.
...
Рейтинг: 0 / 0
17.01.2015, 22:08:24
    #38856887
Nelzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
AkinaNelzzДумаю теперь вы меня поняли.Нет.

Повод уйти из дискуссии?) Что вам не понятно?
...
Рейтинг: 0 / 0
18.01.2015, 11:32:04
    #38856975
Cygapb-007
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
NelzzНАХУА это нужен?) Для фильтра)
Мне кажется, что для фильтра - вам достаточно почитать про EXISTS
...
Рейтинг: 0 / 0
18.01.2015, 21:13:10
    #38857107
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение запроса
NelzzЧто вам не понятно?Пока ничего не понятно. Я сделал два предположения, и ни разу не получил подтверждения, что понял правильно.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Построение запроса / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]