pufAmuf
pufAmuf

Reputation: 7795

Inner joining multiple tables

I'm trying to join an additional table to my query and I ran into this error:

Not unique table/alias: 'events'

It happened when I added:

events INNER JOIN party_types
ON events.PARTY_TYPE = party_types.ID

To my code which now looks like this:

SELECT
    events.EVENT_NAME, events.start_datetime, events.end_datetime, events.VENUE_LOCATION, events.PARTY_TYPE, events.IMAGE_URL, 
    venues.VENUE_NAME, 
    party_types.PARTYTYPE
FROM
    events INNER JOIN venues 
    events INNER JOIN party_types
    ON events.VENUE_LOCATION = venues.ID
    ON events.PARTY_TYPE = party_types.ID
WHERE
    start_datetime >= '$DATE_START_SELECTED' and end_datetime < '$DATE_END_SELECTED

Any ideas why this happened? Thanks :)

Upvotes: 0

Views: 77

Answers (1)

Mark Byers
Mark Byers

Reputation: 838106

That's not valid syntax. It's being interpreted as follows:

FROM events
INNER JOIN venues AS events
INNER JOIN party_types

The second events is being interpreted as an alias for the venues table. The AS is optional.

Try this instead:

SELECT
    events.EVENT_NAME,
    events.start_datetime,
    events.end_datetime,
    events.VENUE_LOCATION,
    events.PARTY_TYPE,
    events.IMAGE_URL, 
    venues.VENUE_NAME, 
    party_types.PARTYTYPE
FROM events
INNER JOIN venues 
    ON events.VENUE_LOCATION = venues.ID
INNER JOIN party_types
    ON events.PARTY_TYPE = party_types.ID
WHERE start_datetime >= '$DATE_START_SELECTED'
AND end_datetime < '$DATE_END_SELECTED'

Upvotes: 4

Related Questions