Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
Таблицы 'Продукция' и 'Книги' связаны отношением 1 к 1 (через ключевое поле 'продукция_ид'). При выполнении простого запроса: select Продукция.продукция_ид,Продукция.имя from Продукция inner join Книги on Продукция.продукция_ид=Книги.продукция_ид выбираются все записи из таблицы 'Продукция', независимо от того, есть ли в 'Книги' совпадающие записи. Я заметил, что это происходит только, если связь [FK_Продукция_Книги] имеет установленный флажок 'Inforce relationship for INSERT's and UPDATE's'. Это действительно глюк компилятора запросов или я чего-то не понимаю? Если глюк, то поможет ли Service Pack1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2001, 15:21 |
|
||
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
У меня в подобоном Вашему примеру все работает исключительно точно. Причем совершенно не зависит от флажка 'Enforce relationship for INSERT's and UPDATE's'. Правда, мои таблицы и поля озаглавлены английскими буквами, может дело в этом?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2001, 15:38 |
|
||
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
У меня SQL2000 SP1 - все работает правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2001, 15:42 |
|
||
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
Причина найдена. Согласно связи [FK_Продукция_Книги] в таблице 'Продукция' не может быть записей, у которых поле 'продукция_ид' не имеет соответствия в 'Книги'. А она имела. Очевидно это сбивало с толку компилятор. Спасибо всем за советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2001, 15:58 |
|
||
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2001, 16:04 |
|
||
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
2Vlad N Скорее всего вы создавали этот relation когда в таблицах уже были данные и при создании не выбрали опцию Check existing data on creation. Так ли было ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2001, 16:25 |
|
||
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
А если не секрет, то зачем Вам вообще понадобилась связь 1:1? Вы таким образом от нулов избавляетесь что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2001, 16:25 |
|
||
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
Лично я использую связи 1:1 в следующих случаях (либо в их совокупности): 1. Когда таблица получается сильно разряженной, собираю поля, в которых значения бывают очень редко в отдельную таблицу. Число записей в ней получается небольшим. 2. Когда нужно получить высокое быстродействие по кластерному индексу. Делается на стороне PK с малым количеством основных полей, все остальные выносятся в отдельную таблицу. 3. Когда нужно разделить удобным образом доступ к двум группам полей одной таблицы между разыми пользователями. Для пары связанных таблиц права доступа могут быть разными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2001, 16:21 |
|
||
|
Почему неправильно работает INNER JOIN?
|
|||
|---|---|---|---|
|
#18+
Насчет 3-го пункта Не правильнее ли создать 2 view-a и назначать права для них, а не на таблицу ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2001, 16:26 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32018240&tid=1824735]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 312ms |

| 0 / 0 |
