![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Составной SQL-запрос [D2005, XP]
Артемка © (2015-06-29 16:32:00)Здравствуйте мастера! У меня в базе MySQL есть две таблички: перечень товаров и мин.кол.(лимиты) товаров. Как составить запрос который бы отображал товары из перечня количество которых меньше указанного во второй таблице? Хочу просмотреть нарушенные лимиты, никак не могу придумать составной запрос блин...
Игорь Шевченко (2015-07-01 18:32:00) [21]Ega23 © (01.07.15 16:26) [11]
> И запросто может оказаться, что запросы
>
> select t1.Id, t2.* from
> t1, t2
> where t2.t1id=t1.id
>
>
> и
>
>
> select t1.Id, t2.* from
> t1 inner join t2 on (t2.t1id=t1.id)
>
>
> окажутся одинаковыми.
Мне было бы крайне интересно увидеть СУБД, где они будут разными
backuper (2015-07-01 17:21:00) [22]
> Посему утверждение, что "join - быстрее" - это сильная заявка.
как минимум это может быть одинаково, как максимум - джойн быстрее отработает. В общем случае, разумеется. Быстрее может быть если там настолько мало записей, что само время исполнения вообще никак не критично.
и я говорил как раз не про inner join, прочитай чем отличается от "обычного" join. А то результат у inner будет как раз почти тот же cross.
Ega23 (2015-07-01 16:26:00) [23]
> как правило запросы "в лоб" с кроссджойном
Вообще-то надо смотреть конкретный план запроса на конкретной СУБД (а порой и конкретной версии данной СУБД).
И запросто может оказаться, что запросы
select t1.Id, t2.* from
t1, t2
where t2.t1id=t1.id
и
select t1.Id, t2.* from
t1 inner join t2 on (t2.t1id=t1.id)
окажутся одинаковыми.
Посему утверждение, что "join - быстрее" - это сильная заявка.
backuper (2015-07-01 13:30:00) [24]А что, правда есть сомнения?
Нет, правда, я не удивлен, как правило запросы "в лоб" с кроссджойном я вижу у людей далеко немолодых, частенько использующих древние методы доступа типа датасетов, что это - нежелание разбираться в новом потому что "и так работает"? Но я удивлен что эти вопросы я вижу тут, ведь многие отвечающие отсылают "читать", рекомендуют нанять программиста и позиционируют себя как специалистов...
Ega23 (2015-07-01 10:29:00) [25]
> join позволит избавиться от декартова произведения таблиц,
> т.е. будет быстрее
Чрезвычайно смелое утверждение. Доказательства будут?
backuper (2015-06-30 16:34:00) [26]join позволит избавиться от декартова произведения таблиц, т.е. будет быстрее
Юрий Зотов (2015-06-30 11:33:00) [27]> Артемка
А почитать все же надо. Запрос-то простейший, пишется за минуту. Надо научиться самому хотя бы такие писать. Не обращаться же на форумы с каждой мелочью, время терять.
Kilkennycat (2015-06-29 23:48:00) [28]не почитал....
Артемка (2015-06-29 21:06:00) [29]>sql Супер!!! Все работает как надо!!! ОГРОМНОЕ СПАСИБО!!!
Артемка (2015-06-29 20:55:00) [30]Спасибо большое! Попробую...
sql (2015-06-29 20:30:00) [31]T1: ID, Name, Amount
T2: ID_T1, Limit
select T1.*, T2.Limit
from T1, T2
where T2.ID_T1 = T1.ID and T1.Amount < T2.Limit
order by T1.Name
Артемка (2015-06-29 17:18:00) [32]Спасибо! Почитаю...
Kilkennycat (2015-06-29 17:07:00) [33]http://sitear.ru/material/mysql-zaprosy
http://hsto.org/getpro/habr/comment_images/e60/fde/c23/e60fdec2379da78d91098f3f39e7f67d.jpg
http://habrahabr.ru/post/196692/