#php #mysql #sql
Вопрос:
я хочу вычесть два столбца (кол-во) в одном запросе и обновить его.С пунктом » где » из 2 тождеств. Вот что я пытаюсь сделать.
$query="
UPDATE all_stores
LEFT JOIN i_v
ON all_stores.name = i_v.name
SET all_stores.qty = (all_stores.qty - i_v.qty )
";
$statement = $connect->prepare($query);
$statement->execute($data);
здесь «all_stores» и » i_v «являются таблицами
, и я хочу, чтобы «данные» обновлялись в таблице all_stores в столбце «кол-во».
Комментарии:
1. (1) В чем проблема с вашим запросом? (2) Примерные данные и желаемые результаты могут прояснить, что вы хотите сделать.
2. Вы используете левое соединение для таблицы «i_v», что означает, что не все столбцы в «all_stores» будут обновлены… будут обновлены только те, которые были возвращены левым соединением.
3. Я бы использовал ПОЛНОЕ соединение, так как @Nikster2014 говорит, что в левом соединении не так много смысла
UPDATE table_a JOIN table_b ON table_a.name = table_b.name SET table_a.qty = (table_a.qty - table_b.qty) WHERE table_a.name = table_b.name;
4. @futureweb это позволяет уменьшить количество полей, но когда я делаю несколько записей, «table_b.qty» принимает только первое значение.