Предположим, у меня есть 4 таблицы:
Таблица 1: Task
ID Task Schedule
1 Cut Grass Mon
2 Sweep Floor Fri
3 Wash Dishes Fri
Таблица 2: Assigned
ID TaskID (FK) PersonID (FK)
1 1 1
2 1 2
3 2 3
4 3 2
Таблица 3: Person
ID Name
1 Tom
2 Dick
3 Harry
Таблица 4: Mobile
ID PersonID (FK) CountryCode MobileNumber
1 1 1 555-555-5555
2 2 44 555-555-1234
3 3 81 555-555-5678
4 3 81 555-555-0000
Я пытаюсь отобразить
- Задание на определенный день
- Имя лица, назначенного на задачу
- Телефоны указанного лица
Я думаю, это должно быть что-то вроде следующего, но я не уверен, как настроить условия так, чтобы результаты были ограничены правильно:
SELECT T.ID, T.Task, P.Name, M.MobileNumber
FROM Task AS T
LEFT JOIN Assigned AS A
ON T.ID = A.TaskID
LEFT JOIN Person AS P
ON A.PersonID = P.ID
LEFT JOIN Mobile AS M
ON M.PersonID = P.ID
WHERE T.Schedule = Fri
Моя цель - получить следующую информацию (она будет отображаться по-другому):
Tasks Name MobileNumber
Sweep Floor, Wash Dishes Dick, Harry 44-555-555-1234, 81-555-555-5678, 81-555-555-0000
Конечно, если JOIN - неправильный способ сделать это, скажите, пожалуйста.