2014-11-09 3 views
0

У меня есть две таблицы в моей базе данных.SQL присоединиться к двум таблицам, где ID соответствует

Movies стол:

+---------------------------------------- 
| ID | title    | timestamp | 
+---------------------------------------- 
| 1 | The host    | time  | 
| 2 | Fight Club   | time  | 
| 4 | 21     | time  | 
----------------------------------------+ 

Movie_Links стол:

+---------------------------------------+ 
| ID | link     | movie_id | 
+---------------------------------------+ 
| 1 | some link   | 1   | 
| 2 | some link   | 1   | 
| 3 | some link   | 1   | 
+---------------------------------------+ 

На данный момент я только выбора строк из Movies таблицы, где title подобен, например:

SELECT * FROM `Movies` 
WHERE `title` LIKE '%The Host%' 
ORDER BY `timestamp` DESC DESC LIMIT 30 

Но что я хочу t o делаем тот же запрос, что и выше, но присоединитесь к таблице Movie_Links, где movie_id равно Movies table's ID и получить все ссылки, которые имеют Movie_id, равные 1.

+1

Капитализации Вашего Всего пост в заглавном Делает Это реальная боль читать. Я исправил это. Заранее благодарю за использование обычной капитализации в будущих постах! :) – stakx

ответ

0

Просто присоединиться на согласующих столбцов:

SELECT * FROM movies m 
JOIN MovieLinks ml 
ON ml.movie_id = m.id 
WHERE m.title LIKE '%The Host%' 
+0

Ну, я попробую вас запросить, но у меня есть только 2 фильма с именем 'The Host'. Но теперь он возвращает 46 всех самых одинаковых номеров ссылок, которые у меня есть для этого фильма. –

+0

Этот запрос вернет все ссылки для всех фильмов, где имя похоже на' % Хост% '. Если вы хотите получить ссылки только для фильма, у которого есть идентификатор 1, измените его на' WHERE m.ID = 1'. – artm

0

Попробуйте присоединиться (удалить заказ пункта, как я не вижу эти поля выше вопрос):

SELECT m.*, ml.link 
FROM movies m join Movie_Links ml 
ON m.id = ml.movie_id 
WHERE m.title LIKE '%The Host%' 
AND m.id = 1 
AND ml.id = 1 
--ORDER BY `featured` DESC,`date_added` DESC,`released` DESC LIMIT 30 
0

Вы могли бы попробовать что-то подобное для объединения:

SELECT * FROM 'movies' 
WHERE 'title" LIKE '%The Host%' 
AND Movies.id = Links.id 
AND Links.id = 1 
ORDER BY 'featured' DESC, 'date_added' DESC, 'released' DESC LIMIT 30 
1

Протестируйте следующий запрос:

SELECT ml.id,m.title,m.timestamp, ml.link 
FROM movies m ,Movie_Links ml 
WHERE m.id=ml.movie_id and title LIKE '%The Host%' 

BR,

Смежные вопросы