Как обновить и вычесть столбцы из двух таблиц в одном запросе с помощью предложения where в php.?

#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» принимает только первое значение.