Я генерирую изображения из оригинала и сохраняя их в таблице. Я хочу запрос, который будет проверять пробелы.Найдите «отсутствующие» записи в таблице пересечения моста/данных
Размеры изображения хранятся в 3-й таблице, и каждый оригинал должен иметь 1 сгенерированное изображение для каждой записи в таблице типов.
Где то, что у меня до сих пор:
SELECT oi.OriginalImageID, it.ImageTypeID
FROM dbo.OriginalImages AS oi
CROSS JOIN
dbo.ImageType AS it
LEFT OUTER JOIN
(
SELECT oi2.OriginalImageID, it2.ImageTypeID
FROM dbo.OriginalImages AS oi2
INNER JOIN
dbo.GeneratedImages AS gi2 ON gi2.OriginalImageID = oi2.OriginalImageID
INNER JOIN
dbo.ImageType AS it2 ON it2.ImageTypeID = gi2.ImageTypeID
) AS sub ON sub.OriginalImageID = oi.OriginalImageID
AND sub.ImageTypeID = it.ImageTypeID
WHERE (sub.OriginalImageID IS NULL)
Который работает, но это, кажется, очень некрасиво. Мне интересно, есть ли более элегантный способ сделать это.
Таблицы по существу выглядеть следующим образом:
OriginalImages
OriginalImageID (PK)
Image
GeneratedImages
OriginalImageID (FK)
ImageTypeID (FK)
Image
ImageType
ImageTypeID (PK)
Description
гул, нет. Я получаю записи, которые мне нужны из исходного запроса. но не получая результатов ни от одного из них. В настоящее время существует 4 типа «, поэтому SELECT NULL FROM dbo.GeneratedImages AS gi2 WHERE gi2.OriginalImageID = oi.OriginalImageID не будет возвращать null, если в таблице GeneratedImages есть даже один из типов. –
@ Dan - К сожалению, я пропустил значительную часть соединения - попробуйте обновленные запросы. –
Горячий! Спасибо за помощь, хотелось бы, чтобы я мог дважды повышать! –