Hello.
What about this: UPDATE news SET comments = ( SELECT COUNT(id) FROM comments WHERE newsid = news.id GROUP BY newsid ); Sebastian <[EMAIL PROTECTED]> wrote: > I have two tables: news and comments. > > i want to count the number of comments for each newsid and update the > count in news.comment > > comments.newsid belongs to news.id > > can i do this with sub queries? im using v4.1.x > i have many records in the comments table so im not sure what the most > efficient way to do it. > > i will likely run this as update every few minutes because doing a join > on the fly is going to hurt performance when i need to display the > comment count on the webpage i think. > > any help? > > > table: news > +----+-----------+ > | id | comments | > +----+-----------+ > | 26 | 0 | > | 21 | 0 | > | 29 | 0 | > +--------------- > > > table: comments > +-----+--------+ > | id | newsid | > +-----+--------+ > | 1 | 26 | > | 2 | 21 | > | 3 | 29 | > | 4 | 29 | > | 5 | 29 | > +-------------+ > > > -- For technical support contracts, goto https://order.mysql.com/?ref=ensita This email is sponsored by Ensita.NET http://www.ensita.net/ __ ___ ___ ____ __ / |/ /_ __/ __/ __ \/ / Gleb Paharenko / /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED] /_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.NET <___/ www.mysql.com -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]