Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ПРОВЕРКА правильности запроса
 
 автор: fox2011   (20.02.2012 в 18:01)   письмо автору
 
 

CREATE TABLE `Manufacturers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
+----+--------------------+
| id | name |
+----+--------------------+
| 1 | CDEF Manufacturing |
| 2 | Dell Ltd |
| 3 | JDF Ltd |
| 4 | Motor inc |
+----+--------------------+
CREATE TABLE `parts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`man_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
+----+-----------------+--------+
| id | name | man_id |
+----+-----------------+--------+
| 1 | DVD burner | 1 |
| 2 | Laptop | 2 |
| 3 | Power supply | 2 |
| 4 | Display adapter | 3 |
| 5 | Network hub | 1 |
| 6 | Sound card | 3 |
+----+-----------------+--------+

- необходимо извлечь идентификаторы, имена изготовителей и соответствующих частей для DELL LTD, JDF LTD
- Извлеките имена и идентификаторы изготовителей, составляющие части, которых, не указаны.
- Измените идентификатор для CDEF, MAnufacturing с 1 на 5 и идентификаторы составляющих частей, которые соответствуют этому изготовителю (одним запросом).
- Переместите вход JDF Ltd и соответственные составляющие части (одним запросом)

Помогите написать эти запросы на mysql?

  Ответить  
 
 автор: cheops   (20.02.2012 в 18:38)   письмо автору
 
   для: fox2011   (20.02.2012 в 18:01)
 

Для этого можно воспользоваться запросами вида
>- необходимо извлечь идентификаторы, имена изготовителей и соответствующих частей для
>DELL LTD, JDF LTD
SELECT * FROM Manufacturers

>- Извлеките имена и идентификаторы изготовителей, составляющие части, которых, не указаны.
SELECT
  *
FROM
  Manufacturers
WHERE
  id NOT IN (SELECT
               DISTINCT man_id
             FROM
               parts)

>- Измените идентификатор для CDEF, MAnufacturing с 1 на 5 и идентификаторы составляющих
>частей, которые соответствуют этому изготовителю (одним запросом).
UPDATE
  Manufacturers
SET
  id = 5
WHERE
  id = 1

>- Переместите вход JDF Ltd и соответственные составляющие части (одним запросом)
Под "входом" что имеется в виду?

  Ответить  
 
 автор: fox2011   (20.02.2012 в 19:06)   письмо автору
 
   для: cheops   (20.02.2012 в 18:38)
 

В первом запросе вы извлекаете все записи, а надо только dell и jdf.

Проверьте правильно ли я написал?:

select
p.name,m.name
from
Manufacturers m, parts p
where
1=1
and m.id=p.man_id
?

2. измените идентификатор для CDEF, MAnufacturing с 1 на 5 и идентификаторы составляющих
частей, которые соответствуют этому изготовителю (одним запросом).

здесь привязку надо сделать к cdef manufacturing а не к id ?

  Ответить  
 
 автор: fox2011   (28.02.2012 в 13:13)   письмо автору
 
   для: cheops   (20.02.2012 в 18:38)
 

Переместите вход JDF Ltd и соответственные составляющие части (одним запросом)
Под "входом" что имеется в виду?
не знаю, что имеется в виду, может я неправильно перевел с англ.:

Remove the JDF Ltd entry and the corresponding component parts (with one query).?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования