Hi.

Just use a LEFT JOIN and you will get a "default of NULL" whenever
there is no entry in the rating table for a product_ref.

Bye,

        Benjamin.

On Fri, Sep 14, 2001 at 01:46:01AM +0100, [EMAIL PROTECTED] wrote:
> Hello,
> 
> I have a query as follows:
> 
>   SELECT products.*, avg(ratings.rating) AS rating
>   FROM products, ratings
>   WHERE products.ref = ratings.product_ref
>   GROUP BY products.ref
>   ORDER BY rating
> 
> In one sense this query works fine - it adds a new column called 'rating'
> (which is a dynamically calculated average of ratings given to a certain
> product) to my product results. My problem is that it only works if a rating
> has been given for a product. When a new product is added, it will have no
> ratings, and so it will not be returned in any of my queries.
> 
> Is there any way to assign a default value to the 'rating' column if actual
> row(s) do not exist in the ratings table? I dont really want to have to make
> a dummy rating row just to trick it into working.
> 
> Am i making sense? I hope so ;o)
> 

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to