Может я не понимаю суть LEFT JOIN...

blue8sky

Новичок
Может я не понимаю суть LEFT JOIN...

Здравствуйте.

У меня есть 2 таблицы: FILMS(21000 записей) и FILM_GENRE(52000 записей). Таблицы связаны по полю film_id(оно уникально для FILMS, но неуникально для FILM_GENRE, так как один фильм часто принадлежит к нескольким жанрам). Запрос 'SELECT * FROM `FILMS` LEFT JOIN `FILM_GENRE` USING (film_id)' возвращает 58000 строк. Как такое может быть? Ведь в FILM_GENRE 52000 строк...
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
возвращает 58000 строк
один фильм часто принадлежит к нескольким жанрам
-~{}~ 21.06.08 13:57:

А вообще это жесть
FILM_GENRE(52000 записей)
Сколько всего жанров есть?
10? 20? 50? 100?

Сделай по-человечески - через таблицу связей.
 

Wicked

Новичок
Как такое может быть?
неуникально для FILM_GENRE, так как один фильм часто принадлежит к нескольким жанрам
да, ты неправильно мыслишь.
мыслить нужно так: сколько вообще существует пар (фильм, жанр).
их может быть и больше, чем фильмов, и больше, чем жанров.

Сделай по-человечески - через таблицу связей.
имхо это и есть таблица связей. Вроде ничего этому не противоречит.
 

blue8sky

Новичок
Спасибо всем.
Сорри за отобраное время: просто есть 6000 фильмов, для которых не указан жанр.

-~{}~ 23.06.08 00:06:

Автор оригинала: Mr_Max
-~{}~ 21.06.08 13:57:

А вообще это жесть

Сколько всего жанров есть?
10? 20? 50? 100?

Сделай по-человечески - через таблицу связей.
Жанров есть 450, а FILM_GENRE - это и есть таблица, связывающая таблицу, содержащую фильмы с таблицей, содержащей названия жанров.


ЗЫ: Если я правильно понял значение термина "таблица связей"
 
Сверху