lightalex
@lightalex

Как подставить значение в зависимости от наличия записи в другой таблице MySQL?

Доброго времени суток
Есть таблица Pricelist:
8ee17440ed504a509009ba0272a241b1.png
и таблица Lots:
cffd6fb1ea104b53960f1b6fab042f12.png
Задача: если для строки из таблицы Pricelist, где id = 2 (id подставляется PHP), найдется строка в таблице Lots, где поля Pricelist.ID = Lots.ID_of_price И Pricelist.prices = Lots.prices, то обновить Own_Price = 1 (для строки где id = 2), иначе обновить Own_Price = 0 (для строки где id = 2)
Возможно ли сделать это каким-то образом используя только один MySQL запрос (запрос посылается из PHP)?
  • Вопрос задан
  • 976 просмотров
Решения вопроса 2
@entermix
Можно, используйте оператор IF, или CASE

Как то так:
UPDATE Pricelist SET Own_Price = if (EXISTS(SELECT `id` FROM `Lots` WHERE `Pricelist`.`ID` = `Lots.`ID_of_price` AND `Pricelist`.`prices` = `Lots`.`prices` LIMIT 1),  1, 0) WHERE `id` = 2
Ответ написан
erniesto77
@erniesto77
oop, rb, py, php, js
Наверно как то так, не проверял еще:
UPDATE Pricelist as p JOIN Lots as l 
ON p.id = l.ID_of_price 
SET p.Own_Price = IF (p.prices = l.prices, 1, 0)
WHERE p.id = l.ID_of_price


Чтобы там где нет совпадений был 0, можно сначала все обнулить а потом где нужно поставить единички
UPDATE Pricelist SET Own_Price = 0;

UPDATE Pricelist as p JOIN Lots as l 
ON p.id = l.ID_of_price 
SET p.Own_Price = IF (p.prices = l.prices, 1, 0);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы