sql >> Database >  >> RDS >> Mysql

mySQL UPDATE-tabel op basis van SELECT (aantal) van een andere tabel

Bewerken :Wat dacht je van dit:

UPDATE SUBJECT
LEFT JOIN (
SELECT count(*) AS num, subject_id
FROM class
GROUP BY subject_id
where date_time > NOW()) AS t ON SUBJECT.subject_id = t.subject_id
SET SUBJECT.current_class_count = coalesce( t.num, 0 )
>

Zolang ik het goed heb getypt, zou je dit in principe één keer per uur moeten kunnen uitvoeren en het zal je SUBJECT-tabel bijwerken.

Het samenvoegen van een tabel in een UPDATE-instructie is een beetje anders in MySQL in vergelijking met Microsoft SQL. Hier is een link erover:

http://blog.ookamikun.com/2008/03 /mysql-update-with-join.html




  1. IS NULL en COALESCE gebruiken in OrderBy Doctrine Querybuilder

  2. Hulp nodig bij hiërarchische Mysql-query

  3. Records van de afgelopen 24 uur ophalen in MySQL

  4. Hoe te verwijderen uit meerdere tabellen in MySQL?