Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.16;
Скачать: CL | DM;

Вниз

В каких случаях...   Найти похожие ветки 

 
Cyrax ©   (2009-06-15 19:30) [0]

...запрос select * from table where id = id вернёт не всё содержимое таблицы ?

"Не всё содержимое таблицы" - это, я понимаю, либо не все строки (отвечает условие), либо не все столбцы (отвечает звёздочка).


 
palva ©   (2009-06-15 19:34) [1]

Да, не всё.


 
Игорь Шевченко ©   (2009-06-15 19:36) [2]

интересен вопрос, в каких случаях вернется все...


 
palva ©   (2009-06-15 19:36) [3]

Ах да, в каких случаях... Ну, когда в некоторых строках id равно NULL, эти строки не вернет.


 
12 ©   (2009-06-15 19:37) [4]

id is null


 
DVM ©   (2009-06-15 19:38) [5]


> В каких случаях...
>
> Cyrax ©   (15.06.09 19:30)
>
> ...запрос select * from table where id = id вернёт не всё
> содержимое таблицы ?

когда поля id там не будет он ничего не вернет (тоже в своем роде "не все")


 
12 ©   (2009-06-15 19:39) [6]

2 palva
обогнал :)
но, поправка, - id is NULL :)


 
Сергей М. ©   (2009-06-15 19:39) [7]


> либо не все столбцы (отвечает звёздочка).


Если "звездочка" вернет не все столбцы, я пойду мылить веревку.
А как иначе, если все во что верил обратилось в прах ?)


 
Cyrax ©   (2009-06-15 19:51) [8]


> Если "звездочка" вернет не все столбцы, я пойду мылить веревку.

Так всякое бывает в конкретных реализациях...


 
Cyrax ©   (2009-06-15 20:01) [9]

Я тоже подумал про NULL, только мне показалось, что это зависит от реализации SQL.


 
Anatoly Podgoretsky ©   (2009-06-15 20:12) [10]

> Cyrax  (15.06.2009 19:51:08)  [8]

Так это П и это не лечится.


 
sniknik ©   (2009-06-15 20:27) [11]

> Если "звездочка" вернет не все столбцы, я пойду мылить веревку.
блин, боюсь сейчас стану убийцей но из песни слов не выкинешь...
проверь запрос через jet к таблице парадокса содержащему поле/я типа graphic.

> что это зависит от реализации SQL.
и от настроек. в mssql например можно задать режим когда NULL = NULL будет true, а не не определено как обычно.


 
oldman ©   (2009-06-15 20:39) [12]


> В каких случаях...
> ...запрос select * from table where id = id вернёт не всё
> содержимое таблицы ?


А вот не надо составлять такой запрос. На фига тебе по запросу получать ВСЕ содержимое таблицы?
:)))


 
Cyrax ©   (2009-06-15 20:49) [13]

А может мне надо получить НЕ ВСЕ содержимое таблицы...


 
AndreyV ©   (2009-06-15 20:53) [14]

> [13] Cyrax ©   (15.06.09 20:49)
> А может мне надо получить НЕ ВСЕ содержимое таблицы...

Приехали.


 
blackman ©   (2009-06-15 21:02) [15]

Ромашка какая-то :)


 
Petr V. Abramov ©   (2009-06-15 21:42) [16]

вопрос на собеседовании чела, который в резюме написал "знаю все СУБД, какие есть".


 
Cyrax ©   (2009-06-15 22:07) [17]

Насчёт собеседования -да, действительно, это из собеседования.
Так это вы его "собеседовали" ?
Он ответил ?


 
Игорь Шевченко ©   (2009-06-15 22:13) [18]


> Насчёт собеседования -да, действительно, это из собеседования.


провалил


 
Cyrax ©   (2009-06-15 22:19) [19]

Так он у вас собеседование проходил ?
Вы все что - в одной конторе ?

з.ы. А про вопрос я узнал со слов чела, который ваше собеседование не провалил. Говорил, что половина на этом вопросе отсеялась.


 
Ega23 from home   (2009-06-15 22:45) [20]

Если собеседование - то на 99% вопрос про NULL.

Насчёт звёздочки. Проверить сейчас возможности нет (нету СУБД никакой). Но, как мне кажется, это может быть вьюха с объединением двух таблиц, в каждой из которых есть поле id. Т.е. 2 ColumnName = "id"
В этом случае будет непонятно, какой id какому равен


 
Игорь Шевченко ©   (2009-06-15 22:54) [21]


> Но, как мне кажется, это может быть вьюха с объединением
> двух таблиц, в каждой из которых есть поле id. Т.е. 2 ColumnName
> = "id"


не может быть такой вьюхи


 
Cyrax ©   (2009-06-15 23:42) [22]


> В этом случае будет непонятно, какой id какому равен

В таких случаях запросы не выполняются - вылетает ошибка.
Соответственно, речи о возврате не всех записей быть не может.


 
Ega23 from home   (2009-06-16 00:25) [23]


> не может быть такой вьюхи


Я во вьюхах не силён, но мне кажется от СУБД зависит.
Ещё раз повторюсь: проверить сейчас не могу. Завтра для MSSQL посмотрю.


 
Игорь Шевченко ©   (2009-06-16 00:50) [24]

Ega23 from home   (16.06.09 00:25) [23]

А подумать, не смотря ?


 
Ega23 ©   (2009-06-16 08:08) [25]


> А подумать, не смотря ?


А что подумать?
Для MSSQL:

Create table #t1 (id int, t1fld varchar(10));
Create table #t2 (id int, t2fld varchar(10));

insert into #t1 (id, t1fld) values (1, "aaa");
insert into #t1 (id, t1fld) values (2, "bbb");

insert into #t2 (id, t2fld) values (1, "ccc");
insert into #t2 (id, t2fld) values (2, "ddd");

Select * from #t1, #t2 where #t1.id=#t2.id

Drop table #t1;
Drop table #t2;


Результат:

id          t1fld      id          t2fld
----------- ---------- ----------- ----------
1           aaa        1           ccc
2           bbb        2           ddd

(2 row(s) affected)


Если такое проходит с обычным завпросом, то не вижу причин, почему не должно пройти с вьюхой (сейчас попробую).


 
Ega23 ©   (2009-06-16 08:14) [26]

Проверил с вьюхой. Тут действительно сервер при создании не пропустил:
Msg 4506, Level 16, State 1, Procedure TestView, Line 3
Имена столбцов в каждом представлении или функции должны быть уникальными. Имя столбца "id" в представлении или функции "TestView" указано несколько раз.


Но с просто селектом - проходит. Возможно, на какой-нибудь конкретной СУБД также пройдёт.


 
test ©   (2009-06-16 08:28) [27]

Ega23 ©   (16.06.09 08:08) [25]

Select
#t1.id as t1id, t1fld, #t2.id as  t2id, t2fld
into #temp
from #t1, #t2
where isnull(#t1.id,0)=isnull(#t2.id,0)

зы
в MsSQL join рулит


 
Ega23 ©   (2009-06-16 08:30) [28]


> test ©   (16.06.09 08:28) [27]


Это к чему было?


 
test ©   (2009-06-16 08:59) [29]

Ega23 ©   (16.06.09 08:30) [28]
Твой код запрос из двух таблиц, результат во временную таблицу. Проблема только в том что он null перемножит.(Количество null первой таблицы * количество null второй таблицы)


 
Ega23 ©   (2009-06-16 09:03) [30]


> Твой код запрос из двух таблиц, результат во временную таблицу.
>  Проблема только в том что он null перемножит.(Количество
> null первой таблицы * количество null второй таблицы)


А, в этом плане. Не, я тут продемонстрировал принципиальную возможность получения RecordSet с двумя одинаковыми ColumnName.


 
antonn ©   (2009-06-16 09:09) [31]


> А вот не надо составлять такой запрос. На фига тебе по запросу
> получать ВСЕ содержимое таблицы?
> :)))
>

скорее всего потому что ему нужно ВСЕ столбцы таблицы %)


 
Ega23 ©   (2009-06-16 09:10) [32]


> скорее всего потому что ему нужно ВСЕ столбцы таблицы %)


Select * from Table where 0=1


 
antonn ©   (2009-06-16 09:13) [33]


> Ega23 ©   (16.06.09 09:10) [32]

я не про строки :)


 
Ega23 ©   (2009-06-16 09:16) [34]


> я не про строки :)


И я не про строки. Ты получишь пустой рекордсет, но со всеми столбцами и их метаданными.


 
Игорь Шевченко ©   (2009-06-16 11:16) [35]


> Возможно, на какой-нибудь конкретной СУБД также пройдёт


А еще подумать ?


 
Ega23 ©   (2009-06-16 11:18) [36]


> А еще подумать ?


А фигли "ещё думать", я почем знаю, как в "какой-нибудь конкретной СУБД" запись в INFORMATION_SCHEMA реализовано?


 
Игорь Шевченко ©   (2009-06-16 11:25) [37]

Ega23 ©   (16.06.09 11:18) [36]


> А фигли "ещё думать",


Ты можешь создать таблицу с двумя одинаковыми названиями полей (допустим, в "любой СУБД") ?

А почему ?


 
Ega23 ©   (2009-06-16 11:36) [38]


> Ты можешь создать таблицу с двумя одинаковыми названиями
> полей (допустим, в "любой СУБД") ?


А View - это не таблица, вообще-то. Хоть и ведёт себя как таблица.


 
test ©   (2009-06-16 11:42) [39]

Ega23 ©   (16.06.09 11:36) [38]
Все равно дубли вывести она не выведет, дублям надо псевдоним присваевать.


 
Кщд   (2009-06-16 11:42) [40]

>Ega23 ©   (16.06.09 11:36) [38]
>А View - это не таблица, вообще-то. Хоть и ведёт себя как таблица.
допустим, создана view с двумя одноименными полями(т.е. полностью идентичными), например, id
как бы теперь в sql использовать эти поля?



Страницы: 1 2 вся ветка

Текущий архив: 2009.08.16;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.016 c
15-1244747440
AlexLLL
2009-06-11 23:10
2009.08.16
"И ИЛИ НЕ Программа"


15-1245357007
Юрий
2009-06-19 00:30
2009.08.16
С днем рождения ! 19 июня 2009 пятница


15-1245203187
brother
2009-06-17 05:46
2009.08.16
Защита от AUTORUN.INF вирусов.


2-1245663388
OlegNik
2009-06-22 13:36
2009.08.16
Имя файла но короче.


2-1245675524
dmitry1991
2009-06-22 16:58
2009.08.16
составить Pattern(RegExp)