Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aktualizacja wiele rekordów danymi z innej tabeli + DUPLICATE KEY ?
Forum PHP.pl > Forum > PHP
WashingtonPLx
Czy da się zrobić coś takiego, aby aktualizowało/ lub tworzyło nowy rekord w tabeli na podstawie danych z innej tabeli? udało mi się jedynie zrobić aktualizacje, ale czasami bywa tak że rekord nie istnieje i trzeba go utworzyć i jak ja mam zrobić ?


  1. $UP = 'UPDATE #__forum_users_posts_in AS t
  2. JOIN (
  3. SELECT
  4. userid, count(*) AS sum_total
  5. FROM
  6. #__forum_messages AS t2
  7. WHERE
  8. T2.thread = '.$topicId.' and hold = 0
  9. GROUP BY
  10. t2.userid
  11. ) AS t2 ON t.userid = t2.userid and (idcat = '.$cat->id.' or idcustom = '.$selectcustom1.')
  12. SET t.posts = t.posts + t2.sum_total';

Podsumowując chodzi mi o to by przerobić powyższy kod tak aby tworzył nowy rekord jeśli nie ma takiego który mogłyby zaktualizować
Próbowałem zastosować mniej więcej coś takiego z ON DUPLICATE KEY UPDATE. Tylko, że aktualizuje rekordy gdzie zgadza się ID, a musi porównywać userid|idcat|idcustom.

  1. INSERT INTO `table` (`columns`) VALUES
  2. (...)
  3. ON DUPLICATE KEY UPDATE
  4. `column` = VALUES (`column`);
Pyton_000
Musiałbyś założyć index qunique na te 3 pola jesnocześnie jeśli taka trójka ma być sprawdzana i wtedy zadziała Ci on duplicate.

To co możesz zrobić to zrobić dodatkowe zapytanie insert które weźmie dane z selecta które nie istnieją w bazie i przypisze im 0 jako wartość
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.