Arhn - архитектура программирования

Выберите строки с соответствующими столбцами в других таблицах

У меня есть 3 таблицы, и я хочу запросить их и получить результаты на основе идентификатора команды таблицы 1.

Я думаю, что это просто, но мне не удалось это решить.

Все, что я пытаюсь сделать, это получить их выбор данных из других таблиц и сгруппировать их по TeamID.

Структура таблиц следующая:

Таблица 1 В этой таблице содержатся записи команд по PersonID, на которые ссылается таблица PersonID. Каждая команда находится в одной строке.

[TeamID]  Tournament_id  Person_1_ID   Person
 [PersonID]     Name         Dob             Email           Country_ID
  ---------    -------     --------        ----------        ------------
    123        John      19/03/1992      [email protected]          90
    124        Moe       20/10/1995      [email protected]           90
    125        Sami      10/05/1989      [email protected]       90
    126        Kim       30/01/1990      [email protected]        95
.......
ID Person
[ParticipationID]     PersonID      tournament_id          Country_id
 -----------------   ----------     -------------         ------------- 
     9999901            123             77789                  90
     9999902            124             77789                  90
     9999903            125             77789                  90
     9999904            126             77789                  95
     9999905            127             77789                  95 
.......................
ID Country_ID --- --------- -------- ---------- --------- -------- 1 77789 123 124 125 90 2 77789 126 127 128 95 3 77789 129 130 131 5 .........

Таблица 2. Это таблица лиц. PersonID = первичный ключ.

 [PersonID]     Name         Dob             Email           Country_ID
  ---------    -------     --------        ----------        ------------
    123        John      19/03/1992      [email protected]          90
    124        Moe       20/10/1995      [email protected]           90
    125        Sami      10/05/1989      [email protected]       90
    126        Kim       30/01/1990      [email protected]        95
.......

Таблица 3 Таблица участия

[ParticipationID]     PersonID      tournament_id          Country_id
 -----------------   ----------     -------------         ------------- 
     9999901            123             77789                  90
     9999902            124             77789                  90
     9999903            125             77789                  90
     9999904            126             77789                  95
     9999905            127             77789                  95 
.......................

Как мне получить этот вывод

TeamID     Tournament_Id     Name     Country_ID 
------      -----------     -----     ------    
  1          777789         John         90 
  1          777789         Moe          90
  1          777789         Sami         90 
  2          777789         Kim          95
03.05.2015

  • Каждая команда стоит в одном ряду Это была твоя первая ошибка 03.05.2015
  • @Strawberry Ну, признаю, это ошибка, у вас есть предложения? как реструктуризация таблицы Team? 03.05.2015
  • Точно. Как минимум, у вас обычно есть таблица команд и таблица игроков. В таблице players будут записаны сведения об игроке и команде, к которой он принадлежит. 03.05.2015
  • @Strawberry Таблица лиц - это таблица игроков, в которой хранятся данные об игроках, таблица команд предназначена для хранения команд, к которым они принадлежат. так, например, если я реструктурирую командную таблицу, какой ключ будет соответствовать обеим этим таблицам? 03.05.2015
  • команда(team_id*,team_name),человек(person_id*,доб,team_id) 03.05.2015
  • Country_ID недостаточно в качестве идентификатора команды в таблице лиц? :/ 03.05.2015
  • Я не знаю. Если в стране ровно одна команда, и каждая команда представляет ровно одну страну, то либо team_id, либо country_id являются избыточными. Как правило, внешний ключ в одной таблице ссылается (компонент) на первичный ключ в другой таблице, 03.05.2015
  • Спасибо, что решили головоломку 03.05.2015

Ответы:


1

Что-то вроде этого:

SELECT t.TeamID
       ,t.Tournament_Id
       ,pr.Name
       ,pr.Country_Id
FROM Team AS t
INNER JOIN Participation AS p ON p.tournament_id = t.Tournament_id
INNER JOIN Person AS pr ON pr.PersonID = p.PersonID
WHERE Tournament_Id = 777789
03.05.2015
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..