|
|
|
| Я в самоучителе MySQL 5.0 не понял Листинг 22.12 на стр.359.
mysql> select products.name, products.price
-> FROM products, products AS prd
-> WHERE products.id_catalog = prd.id_catalog AND
-> prd.name = 'Maxtor 6Y120P0';
Почему результатирующая таблица состоит из 5 записей когда у нас в опреаторе where мы указываем раное только Maxtor 6Y120P0.Заранее благодарю. | |
|
|
|
|
|
|
|
для: jeans1986
(17.10.2006 в 19:59)
| | Дело в том, что запрос демонстрирует поведение саомобъединения: при объединении таблиц products X products - мы получаем новую таблицу с 25 записями (5 X 5), а при помощи запроса WHERE отсекаем 20 из них. Т.е. у нас в промежуточной таблице products X products находится по 5 товарных позиций каждого из типа. Многотабличный запрос - это не "сложение" (за это отвечает UNION) - это по сути "умножение" таблиц. | |
|
|
|
|
|
|
|
для: cheops
(17.10.2006 в 21:43)
| | Столбец name из таблицы products содержит 30 следующи[ записtq:
mysql> select name from products;
+-------------------------------+
| name |
+-------------------------------+
| Celeron 1.8 |
| Celeron 2.0GHz |
| Celeron 2.4GHz |
| Celeron D 320 2.4GHz |
| Celeron D 325 2.53GHz |
| Celeron D 315 2.26GHz |
| Intel Pentium 4 3.2GHz |
| Intel Pentium 4 3.0GHz |
| Intel Pentium 4 3.0GHz |
| Gigabyte GA-8I848P-RS |
| Gigabyte GA-8IG1000 |
| Gigabyte GA-8IPE1000G |
| Asustek P4C800-E Delux |
| Asustek P4P800-VM\L i865G |
| Epox EP-4PDA3I |
| ASUSTEK A9600XT/TD |
| ASUSTEK V9520X |
| SAPPHIRE 256MB RADEON 9550 |
| GIGABYTE AGP GV-N59X128D |
| Maxtor 6Y120P0 |
| Maxtor 6B200P0 |
| Samsung SP0812C |
| Seagate Barracuda ST3160023A |
| Seagate ST3120026A |
| DDR-400 256MB Kingston |
| DDR-400 256MB Hynix Original |
| DDR-400 256MB PQI |
| DDR-400 512MB Kingston |
| DDR-400 512MB PQI |
| DDR-400 512MB Hynix |
+-------------------------------+
При самообьединение как я понял получается 30*30=900 записей. И как я понял, в получившееся таблице только одна запись, где совпадают одновреммено и id_catalog и имя 'Maxtor 6Y120P0'. И я не как не могу понять как он возврящает только имена винчестеров. ГДЕ Я ОШИБАЮСЬ?. Помогите пожайлуста разобратся. ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО. | |
|
|
|
|
|
|
|
для: jeans1986
(18.10.2006 в 21:05)
| | Хм... не очень понятно, вы что хотите сделать? Какая у вас цель? | |
|
|
|