Как связать 3 таблицы, используя внешние ключи? - PullRequest
0 голосов
/ 27 мая 2018

Я сделал таблицу под названием «бронирование», которая содержит идентификатор клиента и идентификатор дома.Я сделал столы для дома и клиентов, а также.Я создал таблицу данных, которая содержит данные о бронировании, но я также хочу, чтобы он содержал фамилию клиента и код дома.

Мои таблицы (в SQL Server Express):

CREATE TABLE [dbo].[houses] 
(
    [Id]     INT IDENTITY (1, 1) NOT NULL,
    [Code]   VARCHAR(50) NULL,
    [Status] VARCHAR(50) NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);

CREATE TABLE [dbo].[customers] 
(
    [Id]       INT IDENTITY (1, 1) NOT NULL,
    [Forename] VARCHAR(50) NULL,
    [Surname]  VARCHAR(50) NULL,
    [Email]    VARCHAR(50) NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC)
);

CREATE TABLE [dbo].[reservations] 
(
    [Id]         INT  IDENTITY (1, 1) NOT NULL,
    [HouseId]    INT  NULL,
    [CustomerId] INT  NULL,
    [StartDate]  DATE NULL,
    [EindDate]   DATE NULL,
    PRIMARY KEY CLUSTERED ([Id] ASC), 
    CONSTRAINT [FK_HouseId] 
        FOREIGN KEY ([HouseId]) REFERENCES [houses]([Id]), 
    CONSTRAINT [FK_CustomerId] 
        FOREIGN KEY ([CustomerId]) REFERENCES [customers]([Id])
);

Я уже создал все таблицы, но не знаю, как их правильно связать.Я хочу получить данные и поместить их в сетку данных.

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Попробуйте это:

select r.*,c.surname,h.code from reservation r,customers c,houses h where 
r.customer_id=c.customer_id and r.house_id=h.house_id
0 голосов
/ 27 мая 2018

Чтобы выбрать все данные из резервации, фамилии клиента и кода дома, необходимо выполнить запрос:

Select R.*, C.Surname, H.Code 
From [dbo].[reservations] R
inner join [dbo].[customers]  C on C.Id = R.CustomerId
inner join [dbo].[houses]  H on H.Id = R.HouseId
...