В настоящее время я работаю с базой данных, но я застрял в выборе запроса. Однако я не эксперт по базам данных. Запрос должен возвращать данные из таблицы, которая имеет два отношения от многих до многих.Как выбрать несколько многих ко многим по отношению к одной таблице
Это моя таблица Диаграмма показывает, что бы понятие моего вопроса
Выбрать запрос должны просмотреть три колонки, которые VidTbl.Name, ActorTbl.Name и SubTitelTbl.name.
Итак, я прочитал и поиск в Интернете, и я дал пытается
Сначала попробуйте
SELECT
VidTbl.NAME AS Video_Titel_Name,
ActorTbl.NAME AS Actor_Name
FROM ActorInVid
INNER JOIN VidTbl
ON VidTbl.Id = ActorInVid.FKVidId
INNER JOIN ActorTbl
ON ActorTbl.Id = ActorInVid.FKActorId
UNION all
SELECT
VidTbl.NAME AS Video_Titel_Name,
SubTitelTbl.NAME AS SubTitel_Langu
FROM SubTitelInVid
INNER JOIN VidTbl
ON VidTbl.Id = SubTitelInVid.FKVidId
INNER JOIN SubTitelTbl
ON SubTitelTbl.Id = SubTitelInVid.FKSTId
Результат я получил, это было неправильно
Затем я попробовал другой способ решить эту проблему, но снова у меня есть еще одна ошибка
второй попробовать
SELECT Temp1.*
From (SELECT VidTbl.Id AS Video_Id,
VidTbl.NAME AS Video_Titel_Name,
ActorTbl.NAME AS Actor_Name
FROM ActorInVid
INNER JOIN VidTbl
ON VidTbl.Id = ActorInVid.FKVidId
INNER JOIN ActorTbl
ON ActorTbl.Id = ActorInVid.FKActorId) AS Temp1
SELECT Temp2.*
FROM (SELECT VidTbl.Id AS Video_Id,
SubTitelTbl.NAME AS SubTitel_Langu
FROM SubTitelInVid
INNER JOIN VidTbl
ON VidTbl.Id = SubTitelInVid.FKVidId
INNER JOIN SubTitelTbl
ON SubTitelTbl.Id = SubTitelInVid.FKSTId) AS Temp2
SELECT *
FROM VidTbl
INNER JOIN Temp1
on Temp1.Video_Id = VidTbl.Id
INNER JOIN Temp2
on Temp2.Video_Id = VidTbl.Id
Ошибка, у меня в последнее выбрать, что было неправильно
Большое спасибо за вашу помощь любыми способами Я хочу, чтобы мой вопрос четкие и полезные Еще раз спасибо ,
Здесь отличное место, чтобы начать. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ Одно предложение, которое я хотел бы сделать, чтобы ваши имена столбцов были согласованы по всей системе. И не бойтесь использовать настоящие слова. VidID должен иметь одно и то же имя в каждой таблице. Это всегда VidID ... если это не аббревиатура для видео, в этом случае это должен быть VideoID. Я бы также избегал добавления префикса FK и TBL и суффиксов ко всему. Это называется tbl-ing и нахмурилось. Почему бы не имена таблиц, такие как видео, актер, ActorVideo, SubTitle и т. Д. ... –
Спасибо за ваш комментарий и помощь –