У меня есть две структуры таблиц, подобные этим:
episodes (
episode_id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
episode_series_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
episode_series_season TINYINT(2) UNSIGNED NOT NULL DEFAULT '0',
episode_series_episode SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
episode_title VARCHAR(200) NOT NULL DEFAULT '',
PRIMARY KEY (episode_id),
KEY series_id (episode_series_id),
KEY episode_series_season (episode_series_season),
KEY episode_series_episode (episode_series_episode)
) ENGINE=MyISAM;
watchlist (
watchlist_id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
watchlist_user_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
watchlist_series_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
watchlist_series_episode_id MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
watchlist_status TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (watchlist_id),
KEY watchlist_series_episode_id (watchlist_series_episode_id),
KEY watchlist_series_id (watchlist_series_id)
) ENGINE=MyISAM;"
Я хочу присоединиться к этим двум и показать все результаты.
Это мне не помогло:
SELECT e.*, w.* FROM episodes e, watchlist w WHERE e.episode_series_id='1' AND e.episode_series_season='1' AND w.watchlist_user_id='1'
Я использую этот запрос, но, как обычно, он показывает только совпадающие столбцы (более 30 строк в таблице эпизодов, 2 строки в таблице наблюдения)
SELECT e.*,w.* FROM episodes e INNER JOIN watchlist w ON e.episode_id=w.watchlist_series_episode_id WHERE e.episode_series_id='1' AND e.episode_series_season='1' AND w.watchlist_user_id='1'
Но он показывает только 2 строки (как и должно быть).
episode_id episode_series_id episode_series_season episode_series_episode episode_title watchlist_id watchlist_user_id watchlist_series_id watchlist_series_episode_id watchlist_status
1 1 1 1 Pilot 1 1 1 1 0
2 1 1 2 Paternity 2 1 1 2 0
Но я хочу показать все подходящие результаты (я хочу выбрать все столбцы из этих двух таблиц, перечислить эпизоды, если совпадение из списка наблюдения, я хочу заполнить данные из столбца списка наблюдения, иначе они должны быть нулевыми)
Я хочу получить такие результаты:
episode_id episode_series_id episode_series_season episode_series_episode episode_title watchlist_id watchlist_user_id watchlist_series_id watchlist_series_episode_id watchlist_status
1 1 1 1 Pilot 1 1 1 1 0
2 1 1 2 Paternity 2 1 1 2 0
3 1 1 3 whatever1 null null null null null
4 1 1 4 whatever2 null null null null null
5 1 1 5 whatever3 null null null null null
Я не мог собрать это вместе. Как я могу это сделать?
Спасибо.