SELECT * FROM TABLE_A JOIN TABLE_B ON (TABLE_A.Value = TABLE_B.Value) WHERE TABLE_A.OtherValue = 'Pilot'
Это не в моей голове, поэтому некоторый синтаксис может быть отключен. Основным пунктом является предложение WHERE
. Вы можете указать значение, которое вы ищете в столбце (в вашем случае вы ищете Pilot
).
РЕДАКТИРОВАТЬ: Чтобы предотвратить значение, вы можете сделать что-то вроде WHERE TABLE.VALUE != 'Copilot'
!=
может потребоваться записать как <>
в зависимости от того, что это за SQL.
РЕДАКТИРОВАТЬ2: Мой SQL-сервер шипит и не подключается, так что это также совершенно не в моей голове, и я думаю, что это немного хакерская работа, но я думаю, что это подойдет. :)
SELECT [CHARTER].*, COUNT(*) as Tally FROM [CHARTER] JOIN [CREW] ON ([CHARTER].[CHAR_TRIP] = [CREW].[CHAR_TRIP]) WHERE [CREW].[CREW_JOB] = 'PILOT' OR [CREW].[CREW_JOB] = 'COPILOT' GROUP BY [CHARTER].* HAVING Tally = 1
Это предполагает, что на всех рейсах есть пилот, но не на всех рейсах есть второй пилот. Чтобы получить точное отображение, которое вы хотите, вам, возможно, придется использовать его как подзапрос (чтобы удалить столбец Tally
).