Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Разные набор полей в select - разная выборка  [new]
Kino36
Member

Откуда:
Сообщений: 91
Добрый день.

Подскажите, может ли изменение набора полей в select менять результат выборки?
8 фев 19, 09:43    [21804043]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
-2-
Member

Откуда:
Сообщений: 14350
Kino36,

да
8 фев 19, 09:45    [21804048]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Kino36
Member

Откуда:
Сообщений: 91
-2-,

а в каких случаях?
8 фев 19, 09:47    [21804052]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1227
Kino36
-2-,

а в каких случаях?
во всех, очевидно.
одно дело, когда вы хотите в итоге видеть модель, цвет. и другое дело, когда просите массу и высоту.
очевидно же, что выборки будут совершенно разными.
8 фев 19, 09:49    [21804054]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Kino36
Member

Откуда:
Сообщений: 91
Я не совсем точно сформулировал вопрос. Есть запрос, с джойнами нескольких таблиц и фильтрами.
Если выбрать все данные из всех таблиц (select * from ...), которые в джойнах участвуют, получим N строк.
Если уберем одну таблицу (select a.*,b.*,d.* from ...) - получим другое количество. Вот этот момент непонятен.
8 фев 19, 09:58    [21804062]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1597
Kino36,

имхо, ето баг, так не должно быть

.....
stax
8 фев 19, 10:06    [21804070]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
-2-
Member

Откуда:
Сообщений: 14350
Stax
ето баг
для выводов не достаточно данных.
8 фев 19, 10:12    [21804078]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1597
-2-
Stax
ето баг
для выводов не достаточно данных.


согласен, нужен селект

імхо
для select * from (подразумеваю что нет хитрых кляуз типа group by и тд), если исключить некоторые поля, то к-во строк не должно поменятся

....
stax
8 фев 19, 10:21    [21804083]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Kino36
Member

Откуда:
Сообщений: 91
Stax,

попробую смоделировать.
8 фев 19, 10:27    [21804089]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 1597
Kino36
-2-,

а в каких случаях?


напр селест с distinct
SQL> ed
Wrote file afiedt.buf

  1* select distinct dname,job from dept d,emp e where d.deptno=e.deptno
SQL> /

DNAME          JOB
-------------- ---------
SALES          MANAGER
SALES          CLERK
ACCOUNTING     MANAGER
ACCOUNTING     PRESIDENT
ACCOUNTING     CLERK
RESEARCH       MANAGER
SALES          SALESMAN
RESEARCH       ANALYST
RESEARCH       CLERK

9 rows selected.

SQL> ed
Wrote file afiedt.buf

  1* select distinct dname from dept d,emp e where d.deptno=e.deptno
SQL> /

DNAME
--------------
ACCOUNTING
RESEARCH
SALES

....
stax
8 фев 19, 11:09    [21804128]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Fogel
Member

Откуда:
Сообщений: 334
Kino36
Я не совсем точно сформулировал вопрос. Есть запрос, с джойнами нескольких таблиц и фильтрами.
Если выбрать все данные из всех таблиц (select * from ...), которые в джойнах участвуют, получим N строк.
Если уберем одну таблицу (select a.*,b.*,d.* from ...) - получим другое количество. Вот этот момент непонятен.


ржака сплошная )))

вот тебе простые тестовые таблицы:
select t1.id, t1.n1 from t1
вернёт
1, 0
2, 1

select t2.id, t2.n2 from t2
вернёт
1, 2
2, 3

select t3.id, t3.n3 from t3
вернёт
1, 4
2, 5
2, 6

Если выбрать данные из всех таблиц:
select * from t1, t2, t3
where t1.id = t2.id and t2.id = t3.id
получим 3 строки
1, 0, 1, 2, 1, 4
2, 1, 2, 3, 2, 5
2, 1, 2, 3, 2, 6

Внимание, вопрос на миллион, сколько строк будет, если убрать 3-ю таблицу из запроса:
select * from tab1 t1, tab2 t2
where t1.id = t2.id

?
8 фев 19, 21:56    [21804933]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28679
Fogel
ржака сплошная )))
Ты туп не по-детски. Иди, подучись читать вопросы.
9 фев 19, 06:59    [21805054]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
stells2
Member

Откуда: Оклахома Пригород Колымы
Сообщений: 887
Stax
напр селест с distinct
select distinct dname,job from dept d,emp e where d.deptno=e.deptno

DNAME          JOB
-------------- ---------
SALES          MANAGER
SALES          CLERK
ACCOUNTING     MANAGER
ACCOUNTING     PRESIDENT
ACCOUNTING     CLERK
RESEARCH       MANAGER
SALES          SALESMAN
RESEARCH       ANALYST
RESEARCH       CLERK

9 rows selected.

select distinct dname from dept d,emp e where d.deptno=e.deptno

DNAME
--------------
ACCOUNTING
RESEARCH
SALES



Все правильно, для первого набора вызвращаются уникальные (не повторяющиеся) dname и job.
Из второго набора, вы убрали одно из ограничений уникальности, т.е. убрали job.
Второй селект возвращает уникальные только dname.
14 фев 19, 07:10    [21809052]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
-2-
Member

Откуда:
Сообщений: 14350
stells2
Stax
напр селест с distinct...
Все правильно...
Спасибо, успокоил. А то неделю сомневался, но боялся спросить.
14 фев 19, 07:38    [21809059]     Ответить | Цитировать Сообщить модератору
 Re: Разные набор полей в select - разная выборка  [new]
stells2
Member

Откуда: Оклахома Пригород Колымы
Сообщений: 887
-2-
Спасибо, успокоил. А то неделю сомневался, но боялся спросить.

Ну, видимо я пропустил что уже пощел стеб а автор потрелся...
И не Kino36 а Stax делал пример.

Ладно, для школьников полезно будет
14 фев 19, 07:48    [21809060]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить