* Unnar
> I have a problem with this query
>
> Version MySQL 4.0.15-nt
>
> The query gets all articles written by author but excludes those articles
> which are related to products
>
> SELECT DISTINCT
>         post.post_id,
>         post.title
> FROM
>         c_posts post,
>         c_post_product prod,
>         authors_relation rel,
>         c_post_properties prop
> WHERE
>         rel.post_id != '$nPostId' // This is the post_id of the post which
> is currently being viewed ( works )
> AND
>         rel.author_id = '$nAuthorId' // The author_id of the Author
> AND
>         post.post_id = rel.post_id // To connect the two tables
> AND
>         post.post_id = prop.post_id // The properties table
> AND
>         post.post_id <> prod.post_id // This is where the problem is. I've
> also tried != . Details below**
> AND
>         prop.state != 3
>
> ** I don't get any errors but the query just doesn't Exclude
> those post_id's
> which are in the c_post_product table which should be the case.

Try a LEFT JOIN, and check if prod.post_id is NULL:

SELECT post.post_id, post.title
  FROM c_posts post
        authors_relation rel,
        c_post_properties prop
  LEFT JOIN c_post_product prod ON
    post.post_id = prod.post_id
WHERE
        rel.post_id != '$nPostId' // This is the post_id of the post which
is currently being viewed ( works )
AND
        rel.author_id = '$nAuthorId' // The author_id of the Author
AND
        post.post_id = rel.post_id // To connect the two tables
AND
        post.post_id = prop.post_id // The properties table
AND
        prod.post_id IS NULL
AND
        prop.state != 3

<URL: http://www.mysql.com/doc/en/JOIN.html >

> ** I've also tried the NOT IN "function", but I get errors when
> trying that. Seems like it's not supported by my version ??

Well... the IN and NOT IN operators are available, but the operand is a
list, you can't use sub-queries in 4.0:

<URL: http://www.mysql.com/doc/en/Comparison_Operators.html#IDX1177 >
<URL: http://www.mysql.com/doc/en/ANSI_diff_Subqueries.html >

--
Roger


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

Reply via email to