Оператор SQL из 2 таблиц - PullRequest
       3

Оператор SQL из 2 таблиц

0 голосов
/ 29 октября 2018

В настоящее время я пытаюсь запустить SQL-оператор для извлечения данных из 2 таблиц. Мне было интересно, может ли кто-нибудь помочь мне с моим кодом. Я хотел бы вытащить Project.Project_ID, Project.StartDate, Project.Users, где Project_ID = 1 в обеих таблицах.

dbo.Project

dbo.UserList

SELECT Project.Project_ID, Project.StartDate, Project.Users
FROM Project
INNER JOIN UserList ON Project.Project_ID=UserList.Project_ID
WHERE Project.Project_ID = '1';

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

С вашей моделью пользователь может быть связан только с одним проектом. Ниже приведена таблица присоединения UserProject.
Таким образом, n пользователей могут принять участие в n проектах. (отношение n к n)

SELECT
    p.id AS projectId,
    p.startDate,
    u.id AS userId,
    u.name,
    [...]
FROM
    Project AS p,
    UserProject AS up,
    User AS u
WHERE
    p.id = up.projectId
    AND u.id = up.userId
    AND p.id = 1;

А вот с отношением 1 к 1

    [...]
FROM
    Project AS p,
    User AS u
WHERE
    p.id = u.projectId
    AND p.id = 1;
0 голосов
/ 29 октября 2018

Я не совсем уверен, какова ваша формулировка проблемы. Если бы вы могли предоставить более подробную информацию (структура БД), это было бы очень полезно.

Может быть более одного сценария, который вы хотите решить на основе вашей структуры данных.

Единственное, что я вижу здесь, вместо Project.Users у вас должно быть UserList. Users. Я предполагаю, что таблицы списка пользователей содержат все данные о пользователях, и это не сводная таблица. Если это так, то вам нужно еще одно соединение с таблицей пользователей.

SELECT 
       Project.Project_ID, Project.StartDate, UserList.Users 
FROM 
       Project
       INNER JOIN UserList ON Project.Project_ID=UserList.Project_ID
WHERE 
        Project.Project_ID = '1';

Пожалуйста, поделитесь вашей структурой базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...