@mysql_ru

Страница 110 из 142
Алексей
25.12.2017
21:13:48
Поможет кто оптимизировать запрос, переведя его наверное на JOIN. Не настолько глубоко в них шарю

SELECT * FROM bet WHERE prime_id IN (SELECT id FROM prime WHERE day = (SELECT day FROM prime WHERE id = 2868) and hour = (SELECT hour FROM prime WHERE id = 2868) and month = (SELECT month FROM prime WHERE id = 2868) and year = (SELECT year FROM prime WHERE id = 2868))

Алексей
25.12.2017
22:40:14
select внутри select всегда плохая идея
поэтому и прошу помощи оптимизации

Google
Алексей
25.12.2017
22:40:24
я знаю что эта идея не гуд

Anton
25.12.2017
22:47:00
селект фром бет Джойн прайм он год=год и месяц равно месяц и день=день where id=?

Stanislav
26.12.2017
08:07:06
Здравствуйте! Я в SQL новичок. В Гугле ничего путного найти не смог.

Есть ли какой-то алгоритм определения типа JOIN - соединения?

Как определить, какой тип нужен в каком случае? Что нужен именно LEFT JOIN, а не INNER JOIN и т. п.?

lost
26.12.2017
08:10:47
Ты видимо когда гуглил статью на викапедии пропустил про джоины.

Artur
26.12.2017
08:12:32
https://anton-pribora.ru/articles/mysql/mysql-join/

Google
Stanislav
26.12.2017
08:16:06
ПРо то, КАК они работаю, я прочитал. Как, глядя на условие задачи ( выборки), понять, какой из них использовать?

Они все работают "дополнить данные из одной таблицы данными из другой". Интересует алгоритм выбора МЕТОДА добавления

Artur
26.12.2017
08:19:31
тут нет каких то железных правил, если запрос работает и достает то что нужно, это уже хорошо

Сергей
26.12.2017
08:57:10
Всем привет! Есть таблица: key | value 1 12 1 15 2 17 1 19 1 24 2 26 1 27 1 29 Как выбрать строку, c первым key=1 после последнего key=2 (сортировка по полю value)?

lost
26.12.2017
08:58:44
выбрать максимальный с key = 2, сделать where где value > выбраного ранее, с key =1
а сортировку по 2 колонкам с лимитом сделать не судьба да...

Сергей
26.12.2017
08:58:48
это два запроса

Yaroslav
26.12.2017
08:59:15
можешь пример набросать плиз)

Ad.x ??
26.12.2017
09:06:36
Всем привет! Есть таблица: key | value 1 12 1 15 2 17 1 19 1 24 2 26 1 27 1 29 Как выбрать строку, c первым key=1 после последнего key=2 (сортировка по полю value)?
никак. индексы в бд отсортированы и вид уже будет другой. Задавать третью колонку с каким-нибудь идентификатором

Сергей
26.12.2017
10:20:27
Делаю один сложный select. Примерная структура: SELECT (%что-тодлинное%) as Y, IF(Y=1,1,0) as A, IF (Y=2,1,0) as B ... Ругается, что и понятно (Y - в таблице нет). Но как написать запрос чтобы не дублировать (%что-тодлинное%) ?

Anton
26.12.2017
10:21:29
В подзапрос обернуть

И if ПОВЫШЕ

Сергей
26.12.2017
10:22:24
но там не запрос, а просто логика в IFах

Anton
26.12.2017
10:23:30
Сути не меняет

Сергей
26.12.2017
10:23:58
это получится сделать дополнительный sekect и джойнить его?

Anton
26.12.2017
10:24:11
неее

SELECT IF(Y=1,1,0) as A, IF (Y=2,1,0) as B ... FROM (SELECT (%что-тодлинное%) as Y) a

Или если у тебя процедура/функа, запиши тот селект в переменную и обрабатывай её

Google
Сергей
26.12.2017
10:26:21
%чтотодлинное% работает со строкой таблицы, не получится так

Anton
26.12.2017
10:26:35
Да хто тебе сказал?

SELECT IF(Y=1,1,0) as A, IF (Y=2,1,0) as B ... FROM (SELECT (%что-тодлинное%) as Y FROM таблица) a

Сергей
26.12.2017
10:27:34
ну да... так понятно. Но получится дополнительный вложенный запрос будет

Anton
26.12.2017
10:28:13
а с каких пор это проблема?))))

Сергей
26.12.2017
10:28:32
Запрос тяжёлый станет ещё тяжелее

Anton
26.12.2017
10:28:47
Он никак не станет тяжелдее от такого

Если правильно сконфигурено всё

Боишься подзапросов, ок, вот тебе ещё вариант: сессионная переменная

Присваивай и дальше обрабатывай её

Сергей
26.12.2017
10:29:56
Не, переменная тоже не пойдёт, её же до SELECT надо объявить

Anton
26.12.2017
10:34:13
Тоже не шибко проблема...

Ну, тебе аж несколько вариантов дал, тебе всё не нравится...

Сергей
26.12.2017
10:34:54
С подзапросом я понял как, а с переменной не понятно как это написать даже(

Anton
26.12.2017
10:42:34
http://www.mysql.ru/docs/man/example-user-variables.html

Сергей
26.12.2017
10:43:14
Снова дополнительный запрос( Но в целом варианты я понял. Спасибо!

Anton
26.12.2017
10:44:10
Блин

Никакого доп запроса

Как в телеге код обернуть?

покажу

Google
Сергей
26.12.2017
10:44:52
апостроф один - линейный код, три - для многострочного

там где Ё апостроф)

Anton
26.12.2017
10:45:27
SELECT @peremennaya:=(%что-тодлинное%) as Y, IF(@peremennaya=1,1,0) as A, IF (@peremennaya=2,1,0) as B ...

тока ты переменную сначала объяви через SET перед этим, а то артефакты возможны.

Сергей
26.12.2017
10:46:20
Вот это похоже на то что надо) Спасибо! Буду пробовать

Anton
26.12.2017
10:46:38
но это для простых запросов

Если аггрегации/хевинги - всё равно оборачивать придётся

Сергей
26.12.2017
10:46:51
то есть?

Anton
26.12.2017
10:46:59
я запроса не видел

Сергей
26.12.2017
10:47:02
а почему агрегации нельзя?

Anton
26.12.2017
10:47:02
Но попробуй

Пост-обработка

Не будет нормально построчно работать

если не обернуть

Сергей
26.12.2017
10:47:47
ясн... потеститурю

Есть столбец со значениями: 1,2,4,NULL,NULL,3 Как сделать так, чтобы и при любой сортировке (ASC или DESC) значения NULL всегда были в конце списка?

Alexey
26.12.2017
13:34:02
order by c is null, c

Сергей
26.12.2017
13:34:14
order by c is null, c
тчоно!! спасибо :)

Как лучше делать? 1) SELECT brand_id FROM product GROUP BY brand_id 2) SELECT DISTINCT brand_id FROM product

Dmitriy
26.12.2017
19:19:08
Динстинкт норм работает в мускуле

Google
Сергей
26.12.2017
19:20:35
Так оба варианта работают. Интересно какой производительнее

Anton
26.12.2017
19:22:24
Вроде как аксиома эскобара применима

Sergey
26.12.2017
21:33:11
Мужики здарова. Подскажите пожалуйста с выборкой данных. Есть к примеру таблица с колонками (a,b,c, ..., x, z) Мне по факту нужны значения не из всех колонок, а только к примеру из колонок (a, b, h, z) Я постоянно беру все значения (Propel) и пользуюсь нужным. на быстродействие БД (именно БД а не серверного кода php) это как то влияет? Мне кажется что если запросить все поля, то это отрабатывает бастрее, нежели если я перечислю нужные. Скажите я ошибаюсь?

Страница 110 из 142