|
command contains unrecognized phrase/keyword
|
|||
---|---|---|---|
#18+
Предположим, у таблиц есть такие записи Таблица pkr ods oup1112 Таблица norma ods fld_11314 Результат запроса Код: sql 1.
будет такой pkr.ods pkr.oup norma.ods norma.fld_11113111412131214 Для простоты, можно считать результат объединения таблиц неким аналогом вложенных циклов. Т.е. для каждой записи таблицы pkr будут отобраны ВСЕ записи таблицы norma с тем же значением поля ods. Если у Вас в обоих таблицах есть несколько записей с одинаковым значением поля ods (т.е. связь типа много-ко-многим), то Вы и получите удвоение результата выборки В отношение запросов Select-SQL понятие "текущая запись" просто не существует. Записи связываются между собой только и исключительно по значению полей, указанных в условии связи и никак иначе ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 09:31 |
|
command contains unrecognized phrase/keyword
|
|||
---|---|---|---|
#18+
Dima TTsYekaterinaDima T, можно задать еще вопрос (уж извините за надоедливость!)? такой простой запрос: Код: sql 1.
в результате записи дублируются. например, вместо 16 шт - (1113311315), выводится 32 шт. (1113311315). Это говорит о том что данные не нормализованы и к ним нельзя применять select. Советую взять любую книгу про СУБД и прочитать там теорию про нормальные формы. Язык SQL можно использовать только если данные хранятся согласно реляционной теории. Если под словом "таблица" понимается тоже что и таблица экселя, то SCAN ... ENDSCAN и самодельные костыли.Ну, это вы тут слегка перегнули... Про степень нормализации сия ситуация не говорит ничего. Ибо мы не знаем, а автор, как обычно, посчитал это очевидным и недостойным упоминания, смысл данных в этих таблицах. Ситуация показывает нам степень непонимания автором принципов работы запросов и стандартным для большинства людей неумением точно сформулировать свои мысли и желания даже на обычном языке, не говоря уж о языках программирования. Вот сейчас в запросе она требует получить все сочетания записей из двух таблиц. А точно это ли ей надо? Судя по скудным комментариям ей таки надо записи из одной таблицы, имеющие значения в одном из полей, встречающиеся в в соответствующем поле другой таблицы. Согласитесь, что from pkr, norma where pkr.ods=norma.ods явно этому не соответствует? И что тут надо что-то другое написать? А то получается, что хочет одно, а требует другое и потом удивляется, что не получает желаемое. 2 TsYekaterina: Таки займитесь правильным формулированием сначала задачи, а потом уже запрос по правильной формулировке пишИте. Если сами не можете, то обращайтесь, но не темните, а полно описывайте данные и связанную с ними задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 09:41 |
|
command contains unrecognized phrase/keyword
|
|||
---|---|---|---|
#18+
Sergey SizovПро степень нормализации сия ситуация не говорит ничего. from pkr, norma where pkr.ods=norma.ods это альтернативный способ записи Код: sql 1.
раз есть дубли, значит ods не является ключом ни одной из упомянутых таблиц, следовательно надо либо сначала нормализовать исходные данные и потом делать select, либо решать другим способом. В любом случае это говорит о непонимании реляционной теории и необходимости ее поизучать. Sergey SizovА точно это ли ей надо? Согласен. Возможно надо совсем другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2018, 09:57 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1581739]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 264ms |
total: | 396ms |
0 / 0 |