|
Программирование >> Исключение дубликатов строк
SELECT Tournaments.TourneylD, Той rnaments.Той rneyDate, Той rnaments.Той rneyLocation FROM Tournaments LEFT JOIN TourneyMatches ON Tournaments.TourneylD = Tou rney Matches.Tou rneylD WHERE Tournev Matches.MatchID IS NULL Tomevi Not Vet PlQved (6 строк) t Red Rooj>ter 1лтв 200H)5-OB 2001-05-15 iw !>anci 2001-05-22 r--nwmin<>i List all bowlers and any games they bowled over 180 . ( Привести список всех игроков в боулинг и всех игр, в которых они набрали больше 180 очков .) Преобразование 1: Select bowler name, tourney date, tourney location, match ID, and raw score from the bowlers table left outer joined with the bowler scores table on bowler ID, then inner joined with the tourney matches table on match ID, then finally inner joined with the tournaments table on tournament ID where raw score in the bowler scores table is greater than 180 (Выбрать имя игрока в боулинг, дату турнира, место проведения турнира, идентификатор матча и предварительное количество очков из таблицы Игроки в боулинг с левым внешним соединением с таблицей Очки игроков в боулинг по идентификатору игрока в боулинг, внутренне соединенной с таблицей Матчи турнира по идентификатору матча, затем, наконец, внутренне соединенной с таблицей Турниры по идентификатору турнира, где значение предварительных очков в таблице Очки игрока в боулинг больше 180) Преобразование 2/ Select bowler name, tourney date, tourney location. Уточнение: match ID, шё raw score from tt bowlers table left outer joined with (Select tourney date, tourney location, match ID, bowler ID, ftne raw score from ttte bowler scores table inner joined with the tourney matches table on bowler ID, theft joined with the tournaments table on tournament ID where raw score is greater than > 180) on bowler ID (Выбрать имя игрока в боулинг, дату турнира, место проведения турнира, идентификатор матча, предварительное количество очков из Игроки в боулинг с левым внешним соединением с (Выбрать дату турнира, место проведения турнира, идентификатор матча, предварительное количество очков из Очки игроков в боулинг , внутренне соединенной с Матчи турнира по идентификатору игрока в боулинг, соединенной с Турниры по идентификатору турнира, где значение предварительных очков игрока) 180) по идентификатору SELECT Bowie rs.Bowie гLastName Bowlers.BowlerFirstName AS BowlerName, TI.Tou rneyDate, TI.Tou rneyLocation, TI.MatchID, TI.RawScore FROM Bowlers LEFT JOIN (SELECT Tournaments.TourneyDate, Tou rnaments.Tou rneyLocation, Bowler Scores.MatchID, Bowler Scores.BowlerlD, Bowier Scores.RawScore FROM (Bowier Scores INNER JOIN Tourney.Matches ON Bowler.Scores.MatchID = Tourney.Matches. MatchID) INNER JOIN Tournaments ON Tournaments.TourneylD = Tou rney.Matches.Tou rneylD WHERE Bowier Scores.RawScore>180) AS TI ON Bowlers.BowlerlD = TI.BowlerlD Внимание! Угадали! Это еще один пример, где вначале требуется построить отфильтрованный набор результата для INNER JOIN, а затем выполнить OUTER JOIN его с таблицей, из которой нужны все строки. fllLBoujlers find Scores Over 180 (106 строк)
Бозо донных росписоний зонятий List the faculty members not teaching a class ( Привести список преподавателей, которые ничего не преподают .) Преобразование/ Select staff first name ш6 staff last name from ttte staf Уточнение: table left joined with the faculty classes table on staff ID where class ID is null (Выбрать имя, фамилию преподавателя из Персонал с левым внешним соединением с Курсы лекций преподавателя по идентификатору преподавателя, где идентификатор курса лекций - Null) SELECT Staff.StfFirstName, Staff.StfLastName, FROM Staff LEFT JOIN Faculty Classes ON Staff.StaffID = Faculty Classes.StaffID WHERE Faculty.Classes.ClassID IS NULL StQff Not TeQching (4 строки)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |