|
помочь составить запрос
|
|||
---|---|---|---|
#18+
есть таблица, например.. КодБылоСталоКод_1244200Код_2123100 Надо получить таблицу для Код="Код_1" КодПримКолКод_1Было244Код_1Стало200 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 12:55 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
q1w1e1есть таблица, например.. КодБылоСталоКод_1244200Код_2123100 Надо получить таблицу для Код="Код_1" КодПримКолКод_1Было244Код_1Стало200 так попробуй Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 13:18 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
А почему union и union all дают различные результаты? KodBS110202304015060 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 13:39 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
q1w1e1А почему union и union all дают различные результаты? В ХЕЛП слабО посмотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 14:06 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
q1w1e1А почему union и union all дают различные результаты? KodBS110202304015060 Какой результирующий набор желаешь получить для таких данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 14:43 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
q1w1e1А почему union и union all дают различные результаты? KodBS110202304015060 union без all работает как distinct на уровне двух SELECT С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 14:56 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
Да просто хотелось понять.. SELECT b as kol FROM table1 UNION select s as kol FROM table1 (10;20;30;40;50;60) SELECT kod as kod,b as kol FROM table1 UNION select kod as kod,s as kol FROM table1 (1,10;1,20,1,50;1,60;2,30;2,40) Дают разное упорядочение и с группировкой возникают вопросы.. SELECT a.* from(SELECT kod as kod,b as kol FROM table1 UNION select kod as kod,s as kol FROM table1) a WHERE kod=1 В этом случае, как мне интуитивно кажется вначале происходит объединение, а затем отбор по условию, что наверное дольше, чем отбор по условию а затем их объединение... SELECT kod as kod,b as kol FROM table1 WHERE kod=1 UNION select kod as kod,s as kol FROM table1 WHERE kod=1.. А с union all, вообще какая то фигня... Когда пишешь цикл, всё логически понятно, а этот чёрный ящик, не предугадаешь, что получишь, в итоге, надо создавать тестовую таблицу, чтоб посмотреть, какой запрос лучше подойдёт...:-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 06:10 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
q1w1e1Да просто хотелось понять.. SELECT b as kol FROM table1 UNION select s as kol FROM table1 (10;20;30;40;50;60) SELECT kod as kod,b as kol FROM table1 UNION select kod as kod,s as kol FROM table1 (1,10;1,20,1,50;1,60;2,30;2,40) Дают разное упорядочение Упорядочения гарантируется в SELECT - SQL ТОЛЬКО за счет предиката ORDER BY q1w1e1 и с группировкой возникают вопросы.. SELECT a.* from(SELECT kod as kod,b as kol FROM table1 UNION select kod as kod,s as kol FROM table1) a WHERE kod=1 В этом случае, как мне интуитивно кажется вначале происходит объединение, а затем отбор по условию, что наверное дольше, чем отбор по условию а затем их объединение... SELECT kod as kod,b as kol FROM table1 WHERE kod=1 UNION select kod as kod,s as kol FROM table1 WHERE kod=1.. Зачем сначала объединять все, а потом из этого всего выбирать часть. Включите WHERE в каждый SELECT. q1w1e1 А с union all, вообще какая то фигня... Когда пишешь цикл, всё логически понятно, а этот чёрный ящик, не предугадаешь, что получишь, в итоге, надо создавать тестовую таблицу, чтоб посмотреть, какой запрос лучше подойдёт...:-) Нет в UNION ALL никакой "фигни". Я же вам уже объяснил разницу! Но можно и еще раз: С ALL объединяет в результирующий набор все строки. Это относится и к дублирующимся строкам. Если обратное не указано, дубликаты строк удаляются. Это означает, в частности, что без ALL запрос будет выполнятся значительно дольше, чем без ALL - не надо искать дубликаты записей. С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 07:34 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
спасибо... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 08:19 |
|
помочь составить запрос
|
|||
---|---|---|---|
#18+
q1w1e1Да просто хотелось понять.. попробую ответить Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Код: plaintext
Код: plaintext
По поводу группировки при UNION: в этом случае происходит отсев дубликатов в полученном наборе и неявная сортировка-как следствие эта операция более затратная,применять её без надобности не стоит. UNION ALL-выведет всё без упорядочивания из таблиц охваченным этим оператором. Что применять зависит от конкретной задачи и метода её решения. И никаких черных ящиков :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 09:35 |
|
|
start [/forum/topic.php?fid=41&msg=36523307&tid=1585495]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 366ms |
total: | 539ms |
0 / 0 |