Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1245146560
Polkin
2009-06-16 14:02
2009.08.16
Assigned к объекту своего класса...


15-1245079850
Cyrax
2009-06-15 19:30
2009.08.16
В каких случаях...


1-1211988241
lazanor
2008-05-28 19:24
2009.08.16
подключение Mathcad или Mathematica к Delphi


2-1244796506
b/@.
2009-06-12 12:48
2009.08.16
Как правильно определять версию файла ?


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский