SELECT ArticleID, ArticleTitle
FROM Articles a
JOIN dbo.PressKitMagazines pm
ON a.MagazineID = pm.MagazineID AND pm.PressKitID = @PressKitID
JOIN dbo.PressKitClass pc
ON a.ClassID = pc.ClassID AND pc.PressKitID = @PressKitID
Вам не нужно включать Magazines
, Class
или PressKit
, потому что вам не нужно возвращать Name
S, связанных с их ID
с. Вам не нужно их в исходном запросе либо:
SELECT ArticleID, ArticleTitle
FROM Articles
WHERE MagazineID IN (
SELECT MagazineID
FROM dbo.PressKitMagazines
WHERE PressKitID = @PressKitID)
AND ClassID IN (
SELECT classID
FROM dbo.PressKitClass
WHERE PressKitID = @PressKitID)
Предположим, что таблица T
имеет те строки, которые делают некоторые заявления, параметризованные столбцов в истинное утверждение. Например, Articles
имеет те строки, которые удовлетворяют:
"статьи ArticleID под названием ArticleTitle был в журнале MagazineID & был класс Classid"
или в сокращенном:
Статья (ArticleID, ArticleTitle, MagazineID, ClassID)
Внутри оператора SQL SELECT столбец таблицы имена имеют префикс с псевдонимом и точкой (которые могут быть исключены, если нет двусмысленности):
a (a.ArticleID, a .TitleTitle, a.MagazineID, a.ClassID)
Так строки в:
SELECT C FROM U WHERE C IN (SELECT C FROM T WHERE
condition
)
или с префиксами и точками:
SELECT U.C FROM U WHERE U.C IN (SELECT T.C FROM T WHERE
condition
)
являются строками, где:
SELECT U.C FROM U JOIN T ON
condition
AND U.C = T.C
потому что они оба возвращают строки с только на колонке C, где:
U (..., UC, ...) и Т (..., ТС, .. .) И состояние И UC = TC
Для составления запросов см. this answer.
Выберите ArticleID, ArticaleTile из статей ......... ..... где PressKitID = @ PressKitID мне нужна помощь в статусе объединения –
"получить данные из ... Таблица в соответствии с .. Таблица данных" & "соединяются между ... Таблица и ... Таблица" не ясны. Используйте больше слов и простых предложений, которые объясняют, что вы имеете в виду, а не расплывчатые слова типа «получить» и «в соответствии с» и «между». Что говорит строка, когда в каждой таблице? Что говорит строка, когда в результате вашего запроса? Покажите свои определения таблиц и пример ввода и вывода. – philipxy
Я беру так долго .. я хочу удалить «where IN» with Join –