Mysql
 sql >> Baza danych >  >> RDS >> Mysql

UPDATE składnia z ORDER BY, LIMIT i wieloma tabelami

Rozwiązaniem jest zagnieżdżenie ORDER BY i LIMIT w klauzuli FROM jako części sprzężenia. To pozwoli Ci najpierw znaleźć dokładny wiersz do zaktualizowania (ta.id), a następnie zatwierdzić aktualizację.

UPDATE tableA AS target
    INNER JOIN (
      SELECT ta.id
      FROM tableA AS ta
        INNER JOIN tableB AS tb ON tb.id = ta.user_id
        WHERE tb.username = '$varName'
        ORDER BY ta.datetime DESC
        LIMIT 1) AS source ON source.id = target.id
    SET col1 = '$var';

Cynk kapelusza dla barona Schwartza, znanego również jako Xaprb, za doskonały post na ten temat:http://www.xaprb.com/blog/2006/08/10/jak-uzyc- zamówienie-według-limitu-aktualizacji-wielu-tabel-w-mysql/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pokaż hosta MySQL za pomocą polecenia SQL

  2. pole oddzielone przecinkami do porównania w mysql

  3. Wskazówki dotyczące zapewniania wydajności bazy danych MySQL — część druga

  4. mysql ERROR 1064 (42000):Wystąpił błąd w składni SQL;

  5. Zwracanie danych wyjściowych skryptu Python CGI MySQL