Оператор select и JOIN

Добавим несколько записей в таблицу, нарушая целостность базы данных:

-- ADD SOME ADDITIONAL DATA

ALTER TABLE dbo.Account NOCHECK CONSTRAINT all;

ALTER TABLE dbo.Question NOCHECK CONSTRAINT all;

ALTER TABLE dbo.[Session] NOCHECK CONSTRAINT all;

ALTER TABLE dbo.TestCase NOCHECK CONSTRAINT all;

ALTER TABLE dbo.[Type] NOCHECK CONSTRAINT all;

INSERT INTO [dbo].[Account]

([Nick_Name],[Full_Name],[Account_Type],[Notes])

VALUES

('eliza2','Her Majesty Elizabeth II',99,'A Queen of GB');

INSERT INTO [dbo].[Type]

([Name],[Description],[Rights])

VALUES

('CoolGuy','The coolest guy on the district ever',77);

ALTER TABLE dbo.Account CHECK CONSTRAINT all;

ALTER TABLE dbo.Question CHECK CONSTRAINT all;

ALTER TABLE dbo.[Session] CHECK CONSTRAINT all;

ALTER TABLE dbo.TestCase CHECK CONSTRAINT all;

ALTER TABLE dbo.[Type] CHECK CONSTRAINT all;

SELECT * FROM dbo.Account;

SELECT * FROM dbo.[Type];

SELECT, реализующий внутреннее и внешнее (левое, правое и полное) объединение таблиц:

-- INNER JOIN --

SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]

FROM dbo.Account a JOIN dbo.[Type] t ON a.Account_Type = t.Id;

-- LEFT OUTER JOIN --

SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]

FROM dbo.Account a LEFT JOIN dbo.[Type] t ON a.Account_Type = t.Id;

-- RIGHT OUTER JOIN --

SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]

FROM dbo.Account a RIGHT JOIN dbo.[Type] t ON a.Account_Type = t.Id;

-- FULL OUTER JOIN --

SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]

FROM dbo.Account a FULL JOIN dbo.[Type] t ON a.Account_Type = t.Id;

SELECT, реализующий перекрестное объединение таблиц:

-- CROSS JOIN --

SELECT a.Id, a.Nick_Name, a.Full_Name, t.Name, t.[Description]

FROM dbo.Account a CROSS JOIN dbo.[Type] t;



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: