Size: a a a

2020 December 10

ПГ

Павел Г. in MySQL
Denis Efremov
Про какое ещё расширение ты говоришь? У тебя же следующая выборка
Нет, мне надо в 1.
источник

ПГ

Павел Г. in MySQL
Это для объяснения я так расписал
источник

DE

Denis Efremov in MySQL
Ну заверни в подзапрос
источник

ПГ

Павел Г. in MySQL
Да, join я думаю сработает, только фиг в ОРМ это подсунешь, так как расширение идет в количество столбцов =( ну в целом не подумал о таков варианте.
источник

ПГ

Павел Г. in MySQL
Denis Efremov
Ну заверни в подзапрос
Я думал об это варианте, но получится 2 одинаковых подзапроса:
select * from t where id in (sub) or id in (sub from parent in (sub))
источник

DE

Denis Efremov in MySQL
Павел Г.
Я думал об это варианте, но получится 2 одинаковых подзапроса:
select * from t where id in (sub) or id in (sub from parent in (sub))
Что это за бред? Ничего не понятно же
источник

ПГ

Павел Г. in MySQL
Denis Efremov
Что это за бред? Ничего не понятно же
Подзапросом я выдерну id,  но мне надо же еще дргуие условия, вот более развернуто:

select from t where id in (select id from t where data=today) or id in (select id from t where parent_id = ((select parent_id from t where data=today)) )
источник

DE

Denis Efremov in MySQL
Павел Г.
Да, join я думаю сработает, только фиг в ОРМ это подсунешь, так как расширение идет в количество столбцов =( ну в целом не подумал о таков варианте.
Что за ORM?
источник

ПГ

Павел Г. in MySQL
Denis Efremov
Что за ORM?
Доктрина
источник

DE

Denis Efremov in MySQL
Павел Г.
Подзапросом я выдерну id,  но мне надо же еще дргуие условия, вот более развернуто:

select from t where id in (select id from t where data=today) or id in (select id from t where parent_id = ((select parent_id from t where data=today)) )
Покажи первый запрос
источник

ПГ

Павел Г. in MySQL
Denis Efremov
Покажи первый запрос
Какой первый запрос...
У меня есть запрос:
select id,parent_id from t where date=CURDATE()

Мне надо что-то сюда дописать, чтобы в выборку попали еще записи, у которых такой же parent_id, как у тех у которых сегодняшняя дата
источник

DE

Denis Efremov in MySQL
Павел Г.
Какой первый запрос...
У меня есть запрос:
select id,parent_id from t where date=CURDATE()

Мне надо что-то сюда дописать, чтобы в выборку попали еще записи, у которых такой же parent_id, как у тех у которых сегодняшняя дата
А что хранится в parent_id?
источник

ПГ

Павел Г. in MySQL
Denis Efremov
А что хранится в parent_id?
int. Пусть будет category_id . Мне надо получить записи за сегодняшнюю дату И записи из тех же категорий, что попали в сегодняшнюю дату.
источник

DE

Denis Efremov in MySQL
SELECT id, parent_id FROM t
 WHERE parent_id in (select distinct parent_id from t where date=CURDATE())
источник

S

Syntax Highlight Bot in MySQL
Denis Efremov
SELECT id, parent_id FROM t
 WHERE parent_id in (select distinct parent_id from t where date=CURDATE())
источник

AW

Alex Wells in MySQL
Привет. Допустим, есть таблица files с колонками one и two и индексами по каждой колонке отдельно.

Делая запрос select * from files where one = 1 or two = 2 мускул делает full table scan, не юзая ни один из индексов.

Это плохо, поэтому делаем union - select * from files where one = 1 union select * from files where two = 2 - и мускул юзнет два индекса. Неидеальный вариант, так как построение таких запросов в клиентском коде - неудобно. Не проблема мускула, конечно, но все же.

Конечно, запросы упрощены. В реальных больше условий, комбинированные индексы и where in из сабквери, но идея та же.

Вопрос: неужели оптимизатор мускула не может сам это разрулить и для первого запроса использовать union под капотом? Или я что-то таки делаю не так? Речь о версии 5.7, но подозреваю, что и в 8 ничего не поменялось.
источник

ПГ

Павел Г. in MySQL
Denis Efremov
SELECT id, parent_id FROM t
 WHERE parent_id in (select distinct parent_id from t where date=CURDATE())
Хм, спасибо, вроде подходит :)
источник

IZ

Ilia Zviagin in MySQL
Павел Г.
Приветствую, подскажите плиз с запросом или в какую сторону посмотреть.
Есть выборка по некоторым условиям, в результатах есть колонка parent_id,  + нужно к этой выборке добавить строки у которых parеnt_id такой же.
JOIN  же
источник

IZ

Ilia Zviagin in MySQL
Mikhaile Serkheeve
Селект поля какие надо, в форм делаешь иннер Джойн по полям в where задаёшь условия выборки и радуешься результату.
FROM не FORM — исправь
источник

ПГ

Павел Г. in MySQL
Ilia Zviagin
JOIN  же
если Join, то колонки сбоку прибавит + надо будет обрабатывать в коде чтобы найти уникальные. И в ОРМ не засунуть.  Вложенный запрос самое то оказалось, немного с другого края надо было подойти к запросу
источник