Получение общих строк из двух разных запросов в SQL Server - PullRequest
2 голосов
/ 30 марта 2009

Есть ли способ получить общие строки в двух разных запросах? Скажем, один запрос возвращает 30 строк, а другой возвращает 100. Но есть только 17 строк с одинаковыми идентификаторами ... Есть два столбца, скажем QuestionID и Answer. Мне нужно, чтобы два одинаковых пользователя ответили на одни и те же вопросы. , Я был бы признателен, если бы я мог сделать это на стороне SQL, прежде чем запускать foreach в .NET. Заранее спасибо

Ответы [ 3 ]

1 голос
/ 30 марта 2009

INTERSECT может быть то, что вы ищете. Подробнее см. MSDN . Если вы не можете удовлетворить требования для пересечения, подумайте о СОЕДИНЕНИИ двух результатов или использовании предложения EXISTS. Или создайте СОЮЗ обоих результатов, Сгруппируйте строки по идентификатору вопроса и СЧИТАЙТЕ строки по группе, возвращая только группы с более чем одной строкой.

1 голос
/ 30 марта 2009

Этот пример использует IN в коррелированном (или повторяющийся) подзапрос, который является запрос, который зависит от внешнего запроса для его ценностей. Выполнено несколько раз, один раз для каждой строки, которая может быть выбранным внешним запросом. это запрос извлекает один экземпляр каждого имя и фамилия автора, для которых процент роялти в titleauthor таблица равна 100 и для которой идентификационные номера автора матч по авторам и названию автора таблицы.

ИСПОЛЬЗОВАТЬ пабы

ВЫБЕРИТЕ DISTINCT имя_пользователя, имя_пользователя

ОТ авторов

ГДЕ 100 В

(SELECT royaltyper

FROM titleauthor

WHERE titleauthor.au_id = authors.au_id)

Взято из: http://doc.ddart.net/mssql/sql70/sa-ses_4.htm

0 голосов
/ 30 марта 2009

Вы должны предоставить нам структуру таблиц, чтобы мы могли дать вам лучший ответ.
Вот мой удар:

SELECT *
FROM dbo.Questions q
     INNER JOIN dbo.Answers a ON a.QuestionID = q.QuestionID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...