[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите составить запрос
dsa
Подскажите пожалуйста
Есть 2 таблицы
--------------------------
- tabl_1 --
--------------------------
- id | tip | name --
--------------------------
- 1 | 7 | Имя --
--------------------------
- 2 | 1 | Имя --
--------------------------
- 3 | 4 | Имя --
--------------------------


----------------------------
- tabl_2 -
----------------------------
- id | ref | sosto9nie -
----------------------------
- 1 | 1 | 1 -
----------------------------
- 2 | 2 | 1 -
----------------------------
- 3 | 2 | 0 -
----------------------------

Обе таблицы связываются между собой id первой = ref второй
Нужно изменить "sosto9nie" из второй таблицы если tip из 1 равен например 7
Как бы это организовать?



Спустя 56 минут, 41 секунда (19.02.2012 - 19:26) killer8080 написал(а):
UPDATE `tabl_2` 
SET `sosto9nie` = '<новое значение>'
WHERE `id` IN (
SELECT `t2`.`id`
FROM `tabl_2` `t2`
LEFT JOIN `tabl_1` `t1` ON `t1`.`id` = `t2`.`ref`
WHERE `t1`.`tip` = 7
)

Спустя 3 часа, 55 минут, 37 секунд (19.02.2012 - 23:22) dsa написал(а):
killer8080, так mysql ругается #1093 - You can't specify target table 'tabl_2' for update in FROM clause - что то вроде нельзя указывать обновляемую таблицу в запросе

Спустя 1 минута, 5 секунд (19.02.2012 - 23:23) nugle написал(а):
так попробуй
UPDATE `tabl_2` 
SET `sosto9nie` = '<новое значение>'
WHERE `id` IN (
SELECT `t2`.`id`
FROM `tabl_2` as `t2`
LEFT JOIN `tabl_1` as `t1` ON `t1`.`id` = `t2`.`ref`
WHERE `t1`.`tip` = 7
)

Спустя 13 минут, 44 секунды (19.02.2012 - 23:37) dadli написал(а):
dsa
как варянт

UPDATE tabl_2 SET sosto9nie = '<новое значение>'
WHERE ref IN (
SELECT id FROM tabl_1 WHERE tip = 7
)

Спустя 11 минут, 26 секунд (19.02.2012 - 23:48) killer8080 написал(а):
dsa
исправил
UPDATE `tabl_2` 
SET `sosto9nie` = 3
WHERE `id` IN (
SELECT `id` FROM (
SELECT `t2`.`id`
FROM `tabl_2` `t2`
LEFT JOIN `tabl_1` `t1` ON `t1`.`id` = `t2`.`ref`
WHERE `t1`.`tip` = 7
) AS `t`
)

Спустя 5 минут, 4 секунды (19.02.2012 - 23:53) dsa написал(а):
dadli в принципе вроде бы логично на нем наверное и остановлюсь ))
Спасибо, всем плюсую

Спустя 4 минуты, 50 секунд (19.02.2012 - 23:58) dsa написал(а):
killer8080 да я полчаса назад наверно натыкался на какую то статью где описывался примерно такой же запрос но но что то не хочется делать эти 3 этажные запросы ))

Спустя 1 минута, 23 секунды (19.02.2012 - 23:59) killer8080 написал(а):
Цитата (dsa @ 19.02.2012 - 22:58)
killer8080 да я полчаса назад наверно натыкался на какую то статью где описывался примерно такой же запрос но но что то не хочется делать эти 3 этажные запросы ))

и правильно dadli предложил лучшее решение smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.