2009-03-30 4 views
2

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

ответ

1

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

USE пабы

SELECT DISTINCT au_lname, au_fname

ОТ авторов

ГДЕ 100 В

(SELECT royaltyper 

FROM titleauthor 

WHERE titleauthor.au_id = authors.au_id) 

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

1

InterSec T может быть тем, что вы ищете. См. MSDN. Если вы не можете удовлетворить требования для пересечения, подумайте о СОЕДИНЕНИИ двух результатов или использовании предложения EXISTS. Или создайте UNION обоих результатов, GROUP строк по id вопроса и COUNT строки на группу, возвращающие только группы с более чем одной строкой.

0

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

SELECT * 
FROM dbo.Questions q 
    INNER JOIN dbo.Answers a ON a.QuestionID = q.QuestionID 
Смежные вопросы