On Monday 05 July 2004 12:28 pm, bruce wrote: > my test tbls > > cattbl dogtbl birdtbl > name name name > id -------> catid ---> dogid > id ---- id > > so > dogtbl.catid = cattbl.id > birdtbl.dogid = dogtbl.id > > my question is how i can use "left joins" to produce > the results set with the names of all three > cat/dog/bird... > > i've tried various derivatives of the following... > mysql> select cattbl.name as cat, > -> dogtbl.name as dog, birdtbl.name as bird > -> from dogtbl > -> left join cattbl on > cattbl.id=dogtbl.catid -> from birdtbl > -> left join dogtbl on > birdtbl.dogid=dogtbl.id; > > i keep getting an error complaining about the 2nd > "from/left join"... ... > -bruce
It's not really clear from the manual, but if you check the basic syntax of the SELECT statement: http://dev.mysql.com/doc/mysql/en/SELECT.html and the JOIN: http://dev.mysql.com/doc/mysql/en/JOIN.html you'll see that all the tables references (the FROM and the JOINS) go in a single spot in the SELECT statement: SELECT <column list> FROM <table references> WHERE <conditions>. So there should only be a single FROM followed first by the tables in the basic select (including any inner join) and then by any LEFT or RIGHT JOINs you wish to add. Generally, you only reference each table one time. select cattbl.name, dogtbl.name, birdtbl.name from dogtbl left join cattbl on cattbl.id=dogtbl.catid this is wrong (see comments above) -> from birdtbl left join anothertablenametoaddtoyourquery on birdtbl.dogid=dogtbl.id; Good luck, Joihn -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]