Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Код

INNER JOIN price_list p ON t.k_tov=p.k_tov

в данном случае устанавливается p как алиас таблицы price_list

иначе тебе пришлось бы написать:

Код

INNER JOIN price_list ON tovar_na_sklade.k_tov=price_list.k_tov


что тебе не понятно в том запросе? 
Там показываются поля, привязанные по индексам ... 

Может тебе почитать теорию, а то запрос тебе добрые дяди напишут, но ты опять ничего не поймешь ...  smile 

Автор: Bulat 30.1.2008, 12:33
fleshka, начнем по порядку, вообще конечно кому как, но с таким синтаксисом имен таблиц и полей работать очень сложно, если нет более четкого представления или описания самих таблиц. Во-вторых, во-втором пункте вообще не понятно(в любом случае мне не очень хочется еще и соображать какое поле в какой таблице и с каким полем из другой таблицы как соотносится) что к чему относится. Так что если не сложно, все же хотелось бы более четкое описание таблиц с названиями столбцов и как соотносятся одни таблицы с другими(поля). А там уже можно и объяснить smile

Автор: fleshka 30.1.2008, 14:56
Цитата(Bulat @ 30.1.2008,  12:33)
fleshka, начнем по порядку, вообще конечно кому как, но с таким синтаксисом имен таблиц и полей работать очень сложно, если нет более четкого представления или описания самих таблиц. Во-вторых, во-втором пункте вообще не понятно(в любом случае мне не очень хочется еще и соображать какое поле в какой таблице и с каким полем из другой таблицы как соотносится) что к чему относится. Так что если не сложно, все же хотелось бы более четкое описание таблиц с названиями столбцов и как соотносятся одни таблицы с другими(поля). А там уже можно и объяснить smile

таблицы и их поля в приклепленном...

Добавлено через 5 минут и 30 секунд
Цитата

Может тебе почитать теорию, а то запрос тебе добрые дяди напишут, но ты опять ничего не поймешь ...  smile


я  вт хочу понятьь как правильно присваивать индексы, и понять суть написания, так же  хотела бы посмотреть на вашем примере как бы вы сделали, и почему?! smile  smile  smile 

Автор: skyboy 30.1.2008, 15:08
Цитата(fleshka @  30.1.2008,  13:56 Найти цитируемый пост)
как правильно присваивать индексы

индексы не присваиваются.
индекс объявляется(пользователем-программистом) и строится/используется СУБД.
зачем вообще http://ru.wikipedia.org/wiki/Индекс_(базы_данных) - в курсе?

Автор: fleshka 30.1.2008, 18:43
ну теперь поняла что такое индексы, но как объявлять  нужно непоняла.....кто б расстолковалл...

Добавлено через 11 минут и 42 секунды
мне вот сначала нужно все скажи да покажи...  подскажите как правильно написать запрос , чтоб я в дальнейшем поняла и разобралась !! мне нужно несколько примеров чтоб отличить и понять! smile 

Автор: 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, спс, разобралась)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)