| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > SQL Query |
| Автор: Вася К. 12.9.2005, 12:16 |
| Здраствуйте! Есть 3 таблицы: table1 TYPE_ID Integer, TYPE_NAME Varchar (10) table2 ITEM_ID Integer, TYPE_ID Integer, TYPE_NAME varchar (20) table3 ID Integer, ITEM_ID Integer. Поле table2.TYPE_ID связано с table1.TYPE_ID. Надо выбрать table1.TYPE_NAME, table2.ITEM_NAME из таблицы table3, где table3.ITEM_ID = table2.ITEM_ID. Как это осуществить? Спасибо! |
| Автор: LSD 12.9.2005, 12:35 | ||
|
| Автор: Akina 12.9.2005, 12:42 | ||
| Каким соотношением связаны таблицы 1 и 2? Таблицы 2 и 3 связаны или нет? если не связаны, возможны ли отсутствия соответствия, и как они должны обрабатываться? Если ТОЧНО по вопросу, то
LSD Ты не учитываешь связи таблиц - возможны ошибки и артефакты |
| Автор: Вася К. 12.9.2005, 13:08 |
| tabel1.type_id и table2.type_id имеюь связь один ко многим, тоже самое table3.item_id и table2.item_id |
| Автор: Akina 12.9.2005, 13:25 | ||||
| С учетом дополнения вопрос лишен смысла. Таблица 3 по условию вообще не участвует в выборке. Кстати, в таблице 2 не вижу поля ITEM_NAME ... ну допущу что TYPE_NAME varchar (20) на самом деле и есть ITEM_NAME А если в лоб, то
Однако этот запрос (и его результат) полностью эквивалентен
но работать будет быстрее |
| Автор: Вася К. 13.9.2005, 08:44 | ||
Нет, таблица 3 участвует в выборке, поскольку надо выбрать те записи из table2 , чьи ITEM_ID присутствуют в table3.ITEM_ID |
| Автор: Akina 13.9.2005, 14:24 | ||||
|
| Автор: Вася К. 13.9.2005, 15:24 | ||
Если честно, я только задним умом догадывался, что мне нужно, но именно благодаря обсуждению темы я прозрел! |