Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MySQL > создание запроса. выборка из 4 таблиц |
Автор: fleshka 29.1.2008, 17:57 |
Пример 1. Показать список товаров, находящихся на каждом из складов. Вывести поля: номер склада, наименование склада (таблица sklad), код товара (таблица Tovar_na_sklade), наименование товара (price_list), количество товара, (Tovar_na_sklade) цену (price_list)и стоимость товара. SELECT s.n_sklad,s.name_sklad,t.k_tov,p.n_tov, t.kol,p.cena,t.kol*p.cena as stoim FROM tovar_na_sklade t INNER JOIN sklad s ON t.n_sklad=s.n_sklad INNER JOIN price_list p ON t.k_tov=p.k_tov пример 2. Создать запрос к таблицам базы данных firma такой, чтобы просчитать стоимость каждого купленного товара каждым покупателем (использовать таблицы Tovar_v_nakl, Price_list, nakladnay, pokupatel. Показать поля: наиме-нование покупателя, номер накладной(n_nakl), дата покупки (data_nakl), код(k_tov) и |
Автор: igorold 30.1.2008, 07:12 | ||||
в данном случае устанавливается p как алиас таблицы price_list иначе тебе пришлось бы написать:
что тебе не понятно в том запросе? Там показываются поля, привязанные по индексам ... Может тебе почитать теорию, а то запрос тебе добрые дяди напишут, но ты опять ничего не поймешь ... ![]() |
Автор: Bulat 30.1.2008, 12:33 |
fleshka, начнем по порядку, вообще конечно кому как, но с таким синтаксисом имен таблиц и полей работать очень сложно, если нет более четкого представления или описания самих таблиц. Во-вторых, во-втором пункте вообще не понятно(в любом случае мне не очень хочется еще и соображать какое поле в какой таблице и с каким полем из другой таблицы как соотносится) что к чему относится. Так что если не сложно, все же хотелось бы более четкое описание таблиц с названиями столбцов и как соотносятся одни таблицы с другими(поля). А там уже можно и объяснить ![]() |
Автор: fleshka 30.1.2008, 14:56 | ||||
таблицы и их поля в приклепленном... Добавлено через 5 минут и 30 секунд
я вт хочу понятьь как правильно присваивать индексы, и понять суть написания, так же хотела бы посмотреть на вашем примере как бы вы сделали, и почему?! ![]() ![]() ![]() |
Автор: skyboy 30.1.2008, 15:08 |
индексы не присваиваются. индекс объявляется(пользователем-программистом) и строится/используется СУБД. зачем вообще http://ru.wikipedia.org/wiki/Индекс_(базы_данных) - в курсе? |
Автор: fleshka 30.1.2008, 18:43 |
ну теперь поняла что такое индексы, но как объявлять нужно непоняла.....кто б расстолковалл... Добавлено через 11 минут и 42 секунды мне вот сначала нужно все скажи да покажи... подскажите как правильно написать запрос , чтоб я в дальнейшем поняла и разобралась !! мне нужно несколько примеров чтоб отличить и понять! ![]() |
Автор: skyboy 30.1.2008, 19:00 |
можно при создании таблицы в http://dev.mysql.com/doc/refman/5.1/en/create-table.html. можно в http://dev.mysql.com/doc/refman/5.1/en/alter-table.html. можно - отдельной командой http://dev.mysql.com/doc/refman/5.1/en/create-table.html В любом случае, необходимо указать: 1. Для каких полей какой таблицы 2. какой тип индекса(UNIQUE INDEX- все значения уникальные для всех записей таблицы; просто INDEX - для ускорения выбора по полям, входящим в индекс; полностекстовый FULLTEXT INDEX - для полей типа ...TEXT(d первую очередь) и http://www.weblibrary.biz/mysql/raswir/optim-analiz INDEX - для данных типа geometry; главный ключ - PRIMARY INDEX, как я понял, либо создается в CREATE TABLE, либо в ALTER TABLE) 2а. Определить способ хранения информации индекса(алгоритм): BTREE, HASH или RTREE 3. Определить имя индекса |
Автор: fleshka 31.1.2008, 20:34 |
skyboy, спс, разобралась) |