On Sat, 7 May 2005, Jochem van Dieten wrote: >On 5/7/05, Dan Bolser wrote: >> >> Why are columns included in the join between two tables ambigious? > >Because MySQL does not follow the SQL standard (ISO/IEC 9075-2:2003). > > >> select pk from a inner join b using (pk); >> >> ERROR 1052 (23000): Column 'pk' in field list is ambiguous!!! >> >> Is this a bug, or is it like this for a reason? It drives me nuts, because >> it is not ambigious (as far as I can tell). Am I a fool? > >It is not ambiguous according to the SQL standard. If this behaviour >of MySQL is documented it is an omission in the MySQL implementation >that you get the error. If this behaviour is not documented, it is a >bug.
Perhaps the omission is documented? Should I try to log this as a bug? I found that the following *does not* cause problems... select * from a inner join b using (pk) group by pk; I haven't explored the above further, but it shows that mysql goes at least some way toward implementing the standard (if I understand what you wrote corectly). Out of interest, what would happen in the following case... select pk from a inner join b on a.pk = b.pk+1; Would that be 'correctly' ambigious according to the sql specification? Cheers, Dan. > >Jochem > >-- >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]