|
|
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Даже стыдно спрашивать, но у меня не получается запрос, наверно это будет запрос UNION. Суть - Таблица "Адрес" со стороны 1 и таблица "Товары" со стороны многие. Как в конструкторе запросов получить примерно такой результат? Код: plaintext 1. 2. 3. 4. 5. Т.е. как объединить все строки из отношения со стороны один со всеми строками со стороны отношения многие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 12:54 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
авторТаблица "Адрес" со стороны 1 и таблица "Товары" со стороны многие. Ни фига непохоже. Как Адрес со стороны 1 если у одного товара м.б. 2 адреса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 12:59 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Наверное все таки не UNION, a inner join И, вообще, - что в конструкторе не получается - он вроде такие элементарные запросы и сам нне поло строит Делаешь в конструкторе и смотришь, что он там написал в SQL строке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 13:03 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
>Ни фига непохоже. Как Адрес со стороны 1 если у одного >товара м.б. 2 адреса? В том то и дело, что мне надо получить такой результат. А проблема в том, что я в конструкторе построил простую выборку (SELECT), а результат запроса не возвращает ни одной записи. Т.е. я не знаю, как сделать, чтобы в запросе отображались все введенные записи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 21:39 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Ё... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 21:41 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Я понимаю, что это слишком круто выкладывать всю схему данных, но иначе я просто не могу на пальцах объяснить что мне нужно. Там конечно, может быть уж не все супер-пупер нормализованно, но суть не в этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 21:45 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Да в схеме-то все замечательно, придраться не к чему. Я ёкнул от ее размера. Не думаю, что кто-то сможет при такой сложной схеме что-то предложить заочно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 21:56 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
А что все-таки надо получить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:06 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
В "тбл_адрес" вводится адрес магазина, а в таблицах "тбл_типы_брэндов", "тбл_типы_товаров", "тбл_типы_упаковки", "тбл_жирность", "тбл_объем", "тбл_цена", вводится товар. Соответственно "тбл_номенклатура товаров" - просто промежуточная таблица. Я ввожу один адрес и на один адрес приходится много товаров. Т.е. пользователь со строны 1 ввел адрес Код: plaintext Код: plaintext Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:18 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Замечание не по существу вопроса: не слишком ли ты занормализовался в этой базе? Нах столько таблиц? Лучше пожертвовать местом, чем понятностью и удобочитаемостью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:21 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
2 Темный: Тогда можно убрать те 11 таблиц, где всего по 2 поля. Но с другой стороны - не удобочитаемостью единой жив человек... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:24 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Когда простейшие запросы в такой структуре нельзя написать за 10 секунд - то нах такую структуру :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:26 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
+ работать быстрее будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:26 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Почему нельзя написать за 10 секунд? Можно. В конструкторе запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:30 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
авторА проблема в том, что я в конструкторе построил простую выборку (SELECT), а результат запроса не возвращает ни одной записи. Ню-ню... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:34 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Так вот, а результатом моего запроса почему-то является пустая строка? Т.е. я в конструкторе просто записываю все поля, которые мне нужны. (Простая выборка SELECT). Что мне надо добавить в запрос, чтобы получить данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:36 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
2 Темный Чего придираешься? Нормальная структура. Так устроит ? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:47 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Дык, я думаю, очевидно, что проблема в данных. Если в запросе все inner join'ы заменить на left и right так, чтобы выдавались все данные из таблиц на стороне "many", то и данные будут видны, и (по дыркам в таблицах на стороне "one") станет видно, почему их не было видно раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:47 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Ладно, не буду придираться. В конце клнцов не мне с ней ковыряться потом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 22:54 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Сделал так. На все что на стороне один - RIGHT JOIN, на стороне многие - LEFT JOIN. Т.е. у меня в схеме данных, все что слева от "тбл_мониторинг" - находится на стороне отношения один, а то, что со стороны многие - находится справа от "тбл_мониторинг". Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Не поддерживается выражение объединения. (Ошибка 3296) Возможные причины: Результаты выполнения инструкции SQL, содержащей множественные объединения, зависят от порядка выполнения объединений. Для того чтобы указать, какое из объединений необходимо выполнить первым, следует создать отдельный запрос, в котором выполняется первое объединение, а затем включить этот запрос в инструкцию SQL. Инструкция ON в операции JOIN является неполной или содержит слишком много таблиц. Попробуйте включить инструкцию ON в предложение WHERE. Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 23:13 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Попоробовал RIGHT c LEFT поменять местами - та же ошибка. :-( Может я не все правильно понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 23:15 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Я бы побоялся править такой сложный селект руками. Берешь исходный селект, открываешь в конструкторе и меняешь правым кликом свойства связей так, чтобы все стрелки шли от середины в стороны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 23:20 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Или так... Идеш в конструктор и выбирай по одной таблице. Как будто заново строишь Добавил табличку, выбрал поля, запустил и т.д Не надо все скопом, запутаться в этой простыне ничего не стоит Где встрянет, там сразу разберешся что к чему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 23:29 |
|
||
|
Запрос UNION (а потом оказалось, что вовсе и не UNION)
|
|||
|---|---|---|---|
|
#18+
Спасибо большое. Помогло. P.S. Просьба к модераторам как-нибудь переименовать этот топик, т.к. мне кажется, что я неправильно его назвал и название не отображает содержание топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2004, 23:31 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32535632&tid=1674336]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
182ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 519ms |

| 0 / 0 |
