|
|
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
в общем на php+mysql нужно сделать выборку так бы я написал на MS SQL select * from t1 where t1.id_t2_n in (select t2.n where t2.id=1) думаю разжевывать не надо... ))) как на mysql сварганить такой запрос? заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 16:33:34 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
Да в точности также. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 16:59:01 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
А если будет тупить - переписать на иннерджойн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2013, 19:59:09 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
по-моему и на ms sql можно записать так select t1.*, t2.n from t1, t2 where t1.id_t2_n = t2.n and t2.id=1; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2013, 16:12:34 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
debloggerпо-моему и на ms sql можно записать так select t1.*, t2.n from t1, t2 where t1.id_t2_n = t2.n and t2.id=1; Написать-то можно, но вообще тем, кто так пишет, в аду приготовлен специальный костер! Лучше оформлять через INNER JOIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 17:05:00 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
Megabyte, Не сгущайте краски, на костер это не тянет. Костер там для тех, кто мешает запятые с явными JOIN-ами. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 19:38:55 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
Megabyte, inner join это короста которой покрывается мозг тех, кто слушает полугурков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 23:23:01 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
Чтобы жизнь малиной не казалась FROM a INNER JOIN b INNER JOIN c ON (b.id = c.id) ON (a.id = c.id) http://stackoverflow.com/questions/10856016/can-you-have-an-inner-join-without-the-on-keyword http://ru.wikipedia.org/wiki/Реляционная_алгебра Так в чем разница выяснения отношений в этих двух синтаксисах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2013, 23:27:53 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
deblogger, Вы даете ссылку про inner join в Оракле. Однако в MySQL ситуация несколько другая: http://dev.mysql.com/doc/refman/5.5/en/join.html In MySQL, JOIN, CROSS JOIN, and INNER JOIN are syntactic equivalents (they can replace each other). In standard SQL, they are not equivalent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 00:21:50 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
miksoft, При чем тут оракле, ну, то ест понятно при чем. Смысл в том что синтаксис INNER JOIN скрывает от пользователя всю правду, потому что неизбежно тянет за собой ON. Вы отрезали логический конец в цитате: "INNER JOIN is used with an ON clause, CROSS JOIN is used otherwise." Чувак на переполненном стеке и задает вопрос - а что будет без ON? Ну надо полагать то и будет, t1*t2 без ограничений. Тогда зачем платить больше, если можно натурально все описать как ест? select t1, t2; К чему лишние сущности? Тривиальный пример В иерархической таблице 253 записи. Поля name, iden, parent. parent показывает на id. Я взял такую таблицу чтобы была одна, а не две штуки. пишу SELECT t1.*, t2.* FROM product_group t1, product_group t2 То есть умножаю таблицу саму на себя. Showing rows 0 - 29 (64,009 total, Сейчас в таблице тотально все что надо. Остается только отрезать лишнее. пишу SELECT t1.*, t2.* FROM product_group t1, product_group t2 WHERE t1.id = t2.parent; Showing rows 0 - 29 (233 total... Это и есть INNER JOIN. Зачем его явно описывать, когда еще более явно оно фигурирует после слова FROM в перечислении таблиц. Поскольку inner не оставляет нужной информации для дальнейшего разворачивания иерархии, то дальше умножать таким способом смысла нет и вот тогда появляется смысл в LEFT JOIN. А пока он не появился - зачем усложнять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 04:54:22 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
В большинстве же практических применений, скажем заменить указатели на справочники содержанием поля справочника - требуется INNER JOIN как метод. Нам не нужна лишняя информация, надо Название города вставить ON Код города допустим. Однако синтакис INNER JOIN ON дает тавтологию в контексте. Отношения задаются в явном виде условием Города.Код Города = Продукт.Код Города. Разве не ясно как относится поля из самого условия? Да, в это частном случае удобно юзать USING. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 05:27:12 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
И вообще оракля на моей стороне :) Some join examples: SELECT * FROM table1, table2; Конец цитаты. Такой синтаксис идет первым в списке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 05:30:15 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
deblogger, Я никак не пойму, о чем вы толкуете? INNER JOIN хуже, потому что букв набирать больше? Еще раз процитирую: In standard SQL, they are not equivalent.Добавлю - не только в стандарте, но в других СУБД. Поэтому кивки на Оркал непонятны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 12:49:24 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
miksoft, INNER JOIN хуже потому что человек не понимает что происходит, считает будто бы именно синтаксис INNER JOIN ему все обеспечивает. А вы думаете откуда берутся вложенные силекты для двух таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:00:10 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
deblogger, Про эквивалент они пишут о CROSS'е. Инны насколько я понимаю, везде одинаковые. По крайней мере в МС точно так же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:02:30 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
debloggermiksoft, INNER JOIN хуже потому что человек не понимает что происходит, считает будто бы именно синтаксис INNER JOIN ему все обеспечивает. А вы думаете откуда берутся вложенные силекты для двух таблиц?Все равно не понимаю. Вложенные селекты для двух таблиц вполне имеют право на жизнь, особенно, если к ним нужно применить, например, агрегацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:05:26 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
miksoft, Не знаю что сказать. Есть такие люди, как их, выживисты короче, забыл как по-английски. Копают бункеры и агрегируют туда консервы. Вспомнил, сюрвиалисты от survive. Вы, конечно, национально правы - это по-нашему все усложнять на пустом месте чтобы враг не разобрался никогда, а что мы сами не разбираемся в том, что делаем - не беда. Всегда можно стырить годную фишку и приспособить как-нибудь. Я пытался объяснить что надо понимать что происходит, поскольку иначе все начинает бессмысленно и вредно усложняться как в примере в первом сообщении. Пришлось агрегироваться - агрегируйтесь. И вообще SQL идет в противоположную от намеченной творцами цели. С чего начинается статья про джойны? С того, что две трети задумок потомки так и не реализовали. Зато вложенные силекты им сделали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:20:53 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
debloggerнадо понимать что происходитС этим не могу не согласиться :) По остальному полемизировать не берусь, сейчас не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:26:24 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
debloggerнадо понимать что происходитт.е. вам не нравится тот факт, что мускуль позволяет отдельным кодерастам писать запросы, даже не понимая, что они, собственно, пишут (и при этом не ругается на синтаксис и т.д)? ну да, есть такое, яркий пример - отключенный по умолчанию only_full_group_by... "but that's a fearure!" (c) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 14:52:26 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
deblogger, Почему "усложнять"? Для наглядности преобразуйте в общее декартово произведение левый джойн с каким-нибудь отсекающим условием... а я на вас посмотрю. :) К примеру: SELECT * FROM table1 LEFT JOIN table2 ON table2.fkey=table1.id AND table2.control IN(1,2,3) ; только потому, что условие в ON - наглядно, его и использую вместо операции "запятая"... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 15:31:04 |
|
||
|
синтаксис подзапрос
|
|||
|---|---|---|---|
|
#18+
debloggermiksoft, INNER JOIN хуже потому что человек не понимает что происходит, считает будто бы именно синтаксис INNER JOIN ему все обеспечивает. 0_о Новое слово в разработке серверного кода! А стандарт ANSI вообще идиоты писали... [INNER|LEFT|RIGHT] JOIN явно показывает, что таблицы связаны. Через запятые сам пишу, когда таблицы никак не связаны, но НД один. Для меня это просто культура и стандарт. + наглядность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2013, 15:57:04 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38344273&tid=1836386]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 290ms |

| 0 / 0 |
