2013-08-31 5 views
-1

я 2 таблицы под названием «продажи» и «rsales»,обновление нескольких значений из нескольких таблицы

и теперь у меня есть этот Ф.Ф. данные от «продажи»

id | pcode | total | 
2 | 122 | 20 | 
3 | 122 | 20 | 
4 | 321 | 30 | 
5 | 321 | 30 | 

не интересно, почему я есть дублирование pcode, total, discount, просто потому, что, когда я «добавляю заказ» или нажимаю кнопку «Отправить», он сохраняет таким образом «продажи» таким образом, как то, что я проиллюстрировал выше. У меня есть этот код, чтобы поделиться с вами тем, как обновлять мои продажи «tbl», и он работает очень хорошо. что я сделал, так это то, что я получаю идентификатор. скажем, например, я получаю идентификатор «1» из «продаж», поэтому, когда я запускаю свой запрос под ним, обновляю идентификатор «1», но также и «2», потому что это тот же «pcode», это очевидно для моего запроса. у меня нет никаких проблем при обновлении моего TBL «продажа»

mysql_query("UPDATE sales SET total = '$total_discount' where pcode = '$pcode' "); 

так что моя проблема заключается в следующей у меня есть этот Ф.Ф. кода, чтобы обновить мой TBL «rsales

mysql_query("UPDATE rsales SET total = '$total_discount' ,discount = '$tot' WHERE rsales.sales_id IN (SELECT sales.id FROM sales)"); 

то, что я хочу, что когда я обновить конкретную PCODE в моих tbl «продажах» также нужно обновить tbl «rsales», так что скажем, например, я обновляю «total» из «sales» на pcode 122., поэтому с 20 я меняю его на 40, поэтому мой tbl «rsales» должно быть таким образом

id | pcode | total | sales_id| 
2 | 122 | 40 | 2  | 
3 | 122 | 40 | 3  | 
4 | 321 | 30 | 4  | 
5 | 321 | 30 | 5  | 

butmy query показывает мне этот результат. allvrows update.i не может точно обновить «total» из «rsales» pls, помогите мне. каждая помощь очень полезна.

id | pcode | total | sales_id| 
2 | 122 | 40 | 2  | 
3 | 122 | 40 | 3  | 
4 | 321 | 40 | 4  | 
5 | 321 | 40 | 5  | 
+0

Возможный дубликат http://stackoverflow.com/questions/18535724/update-values-from-two-table-with-the-same-pcode-and-id – Mihai

ответ

0

Попробуйте это ниже. Кроме того, согласно вашему макету таблицы вам не хватает столбца discount, я предполагаю, что он находится в тестовой базе данных.

UPDATE sales AS t1, rsales AS t2 
SET t1.total = '$total_discount', 
t2.total = '$total_discount', 
t2.discount = '$tot' 
WHERE t1.pcode = '$pcode' 
AND t2.pcode = t1.pcode 

Кстати, вы изменяете все строки из этой строки:

WHERE rsales.sales_id IN (SELECT sales.id FROM sales) 

Здесь вы говорите, чтобы обновить rsales где sales_id является IN (один из) в sales.id поля. Вы тянете все sales.id. Если вам нужно указать, какой идентификатор конкретно, добавьте в нижней части вышеупомянутого запроса:

AND t1.id = '$id' 
AND t2.sales_id = t1.id 

Не сделал макет из вашей БД, так что я не проверял.

+0

wow! невероятный сэр! вы получаете именно то, что я прошу, даже если бы я сделал, или, может быть, я не знаю, как дать вам полную информацию удивительным. – user2656724

+1

Не проблема, не забудьте накормить вундеркиндов! – Jason

Смежные вопросы