Базы данных

Чтение данных из нескольких таблиц с помощью операции соединения

MysticFabric      20000

Mystic Fabric      47000______

Таким образом перебирая все строки отношения TRANSACTION получаем окончательный результат:

Mystic Fabric                 20000

Mystic Fabric                 47000

Mystic Fabric                 10000

Mi Vida                          17500

Mi Vida                          75000

Slow Embers                  15000Mystic Fabric

Northwest by Night        72500

Таблицу, получившуюся в результате соединения, можно обрабатывать также, как и любую другую таблицу. Например, мы можем сгруппировать строки по названиям картин и просуммировать вырученные суммы по каждой из картин. Это сделает следующий запрос:

SELECT Title, SUM(AskingPrice)

FROM WORK, TRANSACTION

WHERE WORK.WorkID = TRANSACTION.WorkID

GROUP BY Title;

Результатом будет следующая таблица:

Slow Embers 15000 Northwest by Night 72500 Mystic Fabric 77000 Mi Vida_______________ 92500_________

Предложение WHERE мы также можем применить в процессе создания соединения:

SELECT  Title, AskingPrice

FROM WORK,   TRANSACTION

WHERE WORK.WorkID  = TRANSACTION.WorkID

AND  AskingPrice > 20000;

Результат соединения будет таким:

Mystic Fabric                     47000

Mi Vida                             75000

Northwest by Night             72500

Это такая же таблица, поэтому все описанные выше SQL-операторы к ней применимы.

Теперь рассмотрим случай, когда требуется соединить три таблицы. Предположим, нам нужно знать по каждой картине вырученную сумму и имя художника. Для этого нам нужно соединить три таблицы: TRANSACTION (поле AskingPrice), WORK (поле Title) и ARTIST (поле Name):

SELECT  Title, AskingPrice,  Name FROM WORK,   TRANSACTION,   ARTIST WHERE WORK.WorkID  = TRANSACTION.WorkID AND WORK.ArtistID = ARTIST.ArtistID;

предыдущаяследующая