Форум: "Прочее";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];
ВнизВ каких случаях... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.008 c