Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Составной SQL-запрос [D2005, XP]


Страницы:   1 2

Артемка ©   (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/


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо