Neil Tompkins wrote:
I've the following SQL statement which I created in MS Access. My table layout is the same in mySQL but it says I have an error and the query doesn't run

SELECT AccommodationOverview.Title, AccommodationOverview.AccommodationOverviewID, AccommodationOverview.AccommodationID, Areas.Name FROM AccommodationOverview INNER JOIN (AccommodationAreas INNER JOIN Areas ON AccommodationAreas.AreasID = Areas.AreasID) ON AccommodationOverview.AccommodationID = AccommodationAreas.AccommodationID WHERE (((AccommodationAreas.AreasID)='58') AND ((AccommodationOverview.AccommodationOverviewID)='ENG') AND ((AccommodationOverview.AccommodationID)<>'1'))

First guess, remove the ()'s around the inner join and anything else unnecessary.

You don't need them around each field in the where clause, it's too confusing.

2nd thing learn about table aliases :)

SELECT o.Title, o.AccommodationOverviewID, o.AccommodationID, a.Name
FROM
AccommodationOverview o, AccommodationAreas aa, Areas a
WHERE
aa.AreasID=a.AreasID AND
o.AccommodationID = aa.AccommodationID AND
aa.AreasID=58 AND
o.AccommodationOverviewID = 'ENG' AND
o.AccommodationID <> '1'


Much easier to read (and should fix the error) :)

--
Postgresql & php tutorials
http://www.designmagick.com/

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

Reply via email to