Как я могу вернуть строку, если ее идентификатор не найден в другой таблице?

У меня есть 2 таблицы в MS База данных SQL 2008, списки и ListingType, я хочу создать оператор выбора, который предоставит мне все строки из Listing, у которых нет их ListingID в таблице ListingType.

Я очень не понимаю, как начать это утверждение.

Пример оператора SQL - делает намного больше, чем я объяснил, но вы должны суметь получить от него то, что я прошу.

SELECT     Listing.Title, Listing.MLS, COALESCE (Pictures.PictureTH, '../default_th.jpg') AS PictureTH, COALESCE (Pictures.Picture, '../default.jpg') AS Picture, Listing.ID, 
                      Listing.Description, Listing.Lot_Size, Listing.Building_Size, Listing.Bathrooms, Listing.Bedrooms, Listing.Address1, Listing.Address2, 
                      Listing.City, Locations.Abbrev, Listing.Zip_Code, Listing.Price, Listing.Year_Built, ListingTypeMatrix.ListingTypeID
FROM         Listing INNER JOIN
                      Locations ON Listing.State = Locations.LocationID LEFT OUTER JOIN
                      ListingTypeMatrix ON Listing.ID = ListingTypeMatrix.ListingID LEFT OUTER JOIN
                      Pictures ON Listing.ID = Pictures.ListingID
WHERE     (ListingTypeMatrix.ListingTypeID = '4') AND 
          ((Pictures.ID IS NULL) OR (Pictures.ID =
                          (SELECT     MIN(ID)
                            FROM          Pictures
                            WHERE      (ListingID = Listing.ID))))

ListingTypeMatrix.ListingTypeID = '4' - это часть, которую я не знаю, на что ее изменить, потому что для нее не будет записи.

10
задан Ian Varley 16 November 2010 в 01:49
поделиться