I'm not sure I followed everything you said, but if products.productid is
NULL then I think you will only find those categories that have no matching
products in the products_categories table. Is that what you want?

Regards,

Jerry Schwartz
Global Information Incorporated
195 Farmington Ave.
Farmington, CT 06032

860.674.8796 / FAX: 860.674.8341


> -----Original Message-----
> From: John Nichel [mailto:[EMAIL PROTECTED]
> Sent: Friday, December 01, 2006 11:10 AM
> To: mysql@lists.mysql.com
> Subject: Selecting data from three tables
>
> Hi,
>
>    I am having a bit of trouble with a SQL query that I am hoping
> someone here can give me pointers on, or a nudge in the
> direction of a
> place which can give me a better understanding of JOINS.
>
> Running MySQL v4.0.27 Max on a RHEL4 box.  I have three tables which
> look like this...
>
> Table categories :
> categoryid   int(11)
> parentid     int(11)
> category     varchar(255)
> avail        char(1)
> template_id  int(11)
>
> Table products_categories
> categoryid   int(11)
> productid    int(11)
>
> Table products
> productid    int(11)
> avail        int(11)
> forsale      char(1)
>
> The short of it is, I'm trying to find all categories which contain
> *only* products which have products.forsale = y AND
> products.avail <= 0.
>   ie, I'm looking for categories in our system which have products
> associated with them BUT none of the products are available for sale
> (forsale flag set but no stock).
>
> I would also like to limit this to just the categories which have the
> following values: parentid > 0 AND template_id <= 0 AND
> categories.avail
> = y, but being that I haven't been able to even nail down the simple
> part of this, I'll go with what I can get to work for now.
>
> I've tried numerous combinations of JOINS, and while the queries are
> executing fine, they're not returning any data (and I made
> sure that at
> least on category had products assigned to it, and that all
> the products
> assigned to it had a stock (avail) of 0).  The simplest form
> I came up
> with (just trying to work with the last two tables,
> products_categories
> and products) was this :
>
> SELECT
>    categoryid,
>    products_categories.productid
> FROM
>    products_categories
> LEFT JOIN
>    products
> ON
>    products_categories.productid = products.productid
> WHERE
>    products.productid IS NULL &&
>    products.avail > 0 &&
>    products.forsale = 'y'
>
> Any help will be most appreciated.
>
> --
> John C. Nichel IV
> Programmer/System Admin
> Dot Com Holdings of Buffalo
> 716.856.9675
> [EMAIL PROTECTED]
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/[EMAIL PROTECTED]
>
>




-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to