|
|
|
Запросики
|
|||
|---|---|---|---|
|
#18+
Есть следующий запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 16:54 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
И откуда этот 234 должен взяться? Он где-нибудь есть? Или он должен сгенериться? На каком основании? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:00 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
запись с ID 234 находится в таблице ind_fields. Она просто выпадает из результата запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:05 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
Да, но основная то таблица ind_tables, в которой, как я понял, этого номера нет. А связаны они по INNER, то есть из ind_ind_fields берется только то, что есть в ind_tables и ничего иного. Поставь вместо INNER слово LEFT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:10 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
На картинке показано что содержит ind_tables. Отношение Ind_tables k ind_fields 1 to many. Вложенный запрос на то там и стоит.чтобы были выведены все поля из ind_tables, в независимости от того есть ли соответствующая запись в таблице ind_data. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:20 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
Неплохо бы привести структуру всех таблиц, участвующих в запросе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:21 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
чтобы были выведены все поля из ind_tables В ней есть номер 234? Да или нет? Если его там нет, то почему он должен появиться в выборке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:23 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
to проходящий. он есть, и находится в таблице ind_fields. смотри скрин в начале темы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:29 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
Я очень извиняюсь, на схему не попала одна таблица. Вот общая схема: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:32 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
Но ты же хочешь получить все записи не из ind_fields, а из ind_tables. А в ней этого номера нет. Он есть в другой таблице. Но в запросе ты не указал брать его из этой другой таблицы. Ты рапорядился брать только из ind_tables, в которой этого номера нет. И речь идет пока только о вложенном запросе. Дошло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:35 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
Если Вы "цепляете" таблицу по LEFT JOIN, то условия отбора записей в этой таблице должны быть только и исключительно в опции ON. В условии WHERE допустимо сравнение только с NULL для полей этих таблиц. Код: plaintext 1. 2. 3. В Вашем примере Вы получили условие: отобрать те записи из таблицы ind_tables, которые имеют связь с запись таблицы ind_data у которой значение поля ind_data.mode_id=1. Либо отобрать те записи таблицы ind_tables, которые не имеют связи с таблицей ind_data. Однако Вы автоматически отбросили те записи таблицы ind_tables которые имеют связь с таблицей ind_data, но связанная запись имеет значение ind_data.mode_id<>1. Если именно этого Вы и добивались, тогда запрос правильный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:39 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
с помощью ind_tables отсеиваются значения из ind_fields. Выбирается одна запись из ind_tables и затем выбираются все соответствующие записи из ind_fields. Связь следующая: ind_table.id=ind_fields.table_id. Значение ind_table.id=1. И в связке Значение 234 не учавствует. И вобще, сам вложенный запрос, если его брать отдельно, работает без глюков. Ошибка в основном запросе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:45 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
По-моему, FULL JOIN здесь вообще ни причем. А еще интересно, что содержит IND_DATA (поле mode_id)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:45 |
|
||
|
Запросики
|
|||
|---|---|---|---|
|
#18+
to ВладимирМ Nakonec hotj odin umnij chelovek nashelsja. Spasibo, vsje rabotajet :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2007, 17:47 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34620876&tid=1589094]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 326ms |

| 0 / 0 |
