2010-09-15 4 views
1

У меня есть таблица 'images', которая содержит внешние ключи из таблиц 'event' и 'category'.SQL join 3 tables

У меня есть функция, которая отображает все события.

Я могу выбрать все события, связанные с фотографией в таблице изображений, но я хочу добавить еще одно условия для категории, как:

select event from images where category is $category 

Есть ли способ, чтобы присоединиться к категории к изображениям Aswell ?

$query = "SELECT e.event 
FROM images i 
INNER JOIN event e 
ON e.eventID = i.eventID 
WHERE event = '".$specificEvent."'"; 

ответ

1

Вы можете сделать второе внутреннее соединение по категориям. Гадание на именах столбцов:

SELECT e.event 
FROM images i INNER JOIN event e ON e.eventID = i.eventID 
INNER JOIN categories c ON c.categoryID = i.categoryID 
WHERE event = 'specificEvent' AND category = 'someCategory' 
3

Вы можете добавить столько таблиц, вместе с внутренними объединениями, как вы хотите, просто убедитесь, что вы подключаете правильные поля

ваш пример:

$query = "SELECT e.event FROM images i INNER JOIN event e ON 
      e.eventID = i.eventID WHERE event = '".$specificEvent."'"; 

Обновленный образец :

$query = "SELECT e.event FROM images i INNER JOIN event e ON 
     e.eventID = i.eventID 
     inner join Category c ON i.categoryid = c.categoryid 
     WHERE event = '".$specificEvent."'"; 

Я не тестировал его, но это формат, который вы используете.

0
$query = "SELECT e.event FROM images i INNER JOIN event e ON e.eventID = i.eventID INNER JOIN category c ON c.categoryId = i.categoryId WHERE e.event = '".$specificEvent."' and c.categoryId = '".$specificCategoryId."'";