Выбор SQL в заданном наборе данных сужается - PullRequest
0 голосов
/ 05 марта 2012

У меня есть таблица с электронными письмами (называемые Почтами), и я хочу пометить отдельные сообщения как назначенные различным группам работников (например, team01, team02 и т. Д.). Связи команд msg <-> хранятся в другой таблице (называемой MailAssignments). Я пытаюсь получить сообщения, которые помечены как предназначенные только для одной команды (скажем, team01), и идентификатор сообщения должен быть меньше указанного значения, так что набор сообщений сужается, скажем, до 10.

У меня есть запрос ниже, но он всегда показывает ВСЕ сообщения, назначенные команде, вместо того, чтобы показывать только те, для которых указан msgId <*. </p>

Что не так с моим запросом?

string queryGetMails =
"SELECT TOP 10 * FROM Mails WHERE msgId IN (SELECT msgId FROM MailAssignments WHERE (forTeam='team01') AND (msgId < ?) )";

Я тоже пробовал это (и результат тот же): /

"SELECT TOP 10 * FROM Mails WHERE (msgId<?) AND (msgId IN (SELECT msgId FROM MailAssignments WHERE forTeam='team01' ) )";

1 Ответ

0 голосов
/ 05 марта 2012

Почему вы настаиваете на подзапросах и предложениях, когда кажется, что у вас есть четкое соединение между двумя таблицами?Вы пробовали это?

SELECT TOP 10 Mails.* 
FROM Mails left join 
MailAssignments On Mails.msgID = MailAssignments.msgID 
WHERE Mails.msgId < ? AND MailAssignments.forTeam = 'team01'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...