Расширенный выбор - PullRequest
       12

Расширенный выбор

2 голосов
/ 06 декабря 2010

У нас есть 4 таблицы:

mysql> desc Products;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| product_id | int(11)     | NO   | PRI | NULL    | auto_increment |
| product    | varchar(30) | NO   |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> desc Vendors;
+-----------+-------------+------+-----+---------+----------------+
| Field     | Type        | Null | Key | Default | Extra          |
+-----------+-------------+------+-----+---------+----------------+
| vendor_id | int(11)     | NO   | PRI | NULL    | auto_increment |
| vendor    | varchar(30) | YES  |     | NULL    |                |
+-----------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql> desc Prices;
+------------+---------+------+-----+---------+----------------+
| Field      | Type    | Null | Key | Default | Extra          |
+------------+---------+------+-----+---------+----------------+
| price_id   | int(11) | NO   | PRI | NULL    | auto_increment |
| vendor_id  | int(11) | NO   | MUL | NULL    |                |
| product_id | int(11) | NO   | MUL | NULL    |                |
| price      | double  | YES  |     | NULL    |                |
+------------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> desc Bought;
+------------+---------+------+-----+---------+----------------+
| Field      | Type    | Null | Key | Default | Extra          |
+------------+---------+------+-----+---------+----------------+
| bought_id  | int(11) | NO   | PRI | NULL    | auto_increment |
| product_id | int(11) | NO   | MUL | NULL    |                |
| date       | date    | YES  |     | NULL    |                |
| pieces     | int(11) | YES  |     | 1       |                |
+------------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

Теперь нам нужны сложные операторы выбора, чтобы получить нужные нам таблицы:

столбцы первой таблицы нужны [ поставщик, продукт,цена, продавцы (который предлагает продукт)].

во второй таблице должно быть показано, что было куплено между $ date1 и $ date2 [ продукт, штук, поставщик, цена, дата ]

В последней таблице должно быть указано, что могло быть сохранено в данный момент времени [ поставщик (самый дешевый поставщик для продукта), продукт, шт, цена (дляодин продукт), сумма (цена для n продуктов)].

Поскольку это не сложно, в результирующих таблицах вместо ключа должны быть указаны имена.Мы сидели в этот дырявый день, но никто из нас не обладает знаниями для проведения необходимых поисков, поэтому любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 06 декабря 2010

Просмотрите объединения для выбора данных из нескольких таблиц:

SELECT * FROM Prices LEFT JOIN (Vendors, Products)
                 ON (Products.product_id=Prices.product_id AND Vendors.vendor_id=Prices.vendor_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...