On Monday 19 January 2004 15:38, Jochem van Dieten wrote:
> So let's make it 2 fields:
>
> SELECT
>   t1.*
> FROM
>   table1 t1,
>   table2 t2 INNER JOIN table2 t3
>    ON (t2.rdid = t3.rdid AND t2.vid = 46 AND t3.vid = 554)
> WHERE
>   t1.rdid = t2.rdid
>
> Add GROUP BY/DISTINCT per your requirements.

Although you're giving Table2 two aliases (t2 and t3) there is still only two 
tables and *ONE* field. In the join listed above, you are asking for the 
records where t2.rdid = t3.rdid (*NOT* what you want to do, you have now left 
t1 out of the join altogether) plus ??? (I'm not sure what this would match, 
although it looks interesting).

If you absolutely need to do it with a join you might try

Select t1.* from Table1 t1 JOIN Table2 t2 
        on (t1.id = t2.rdid and (t2.vid = 46 or t2.vid = 554))

I don't think this is as clear as a simple join with a Where, but there are a 
lot of ways to get the same result.



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

Reply via email to