Привет, я довольно новичок в SQL - так что будьте осторожны со мной!
В основном у меня есть две таблицы, к которым я пытаюсь присоединиться, где первичный ключ в первой таблице используется несколько раз во второй таблице (и образует первичный ключ во второй таблице вместе с другим столбцом)
Возможно, будет лучше, если я приведу пример:
Таблица 1: TravelRecords
TravelEventID EventType RecordLocator OfficeID
0001 F ABC123 LDN
0002 F ABC234 LDN
0003 T BDF232 SOU
0004 F DFD890 GLA
Таблица 2: TravelRecordRmks
TravelEventID RemarkNo Keyword Text
0001 1 TVL LOWCOST BOOKING
0001 2 TVL CREDIT CARD USED
0001 3 PSG COST CENTRE REQUIRED
0001 4 PSG EMPLOYEE NUM REQUIRED
0002 1 TVL CREDIT CARD USED
0002 2 AGT BOOKED BY AGENT
0002 3 AGT CONFIRM WITH AIRLINE
0002 4 TVL LOWEST FARE CONFIRMED
0002 5 TVL NO CANCELLATION CHARGE
0003 1 TVL LOWCOST BOOKING
0003 2 TVL CARRIER : EASYJET
0003 3 TVL LOWEST FARE CONFIRMED
0004 1 TVL LOWCOST BOOKING
0004 2 TVL CREDIT CARD USED
Для второй таблицы ключ представляет собой комбинацию TravelEventID и RemarkNo, которые вместе дают уникальный идентификатор.
По сути, все, что я пытаюсь сделать, это соединить таблицы вместе и вернуть локатор записей для бронирований, в которых текстовая строка примечания содержит LOWCOST BOOKING AND CREDIT CARD USED (поэтому в приведенном выше примере должны быть возвращены только ABC123 и DFD890.
Я пробовал что-то вроде:
SELECT TravelRecords.RecordLocator
FROM TravelRecords INNER JOIN
TravelRecordRmks ON TravelRecords.TravelEventID = TravelRecordRmks.TravelEventID db
WHERE (TravelRecordRmks.RemarkText = 'LOWCOST BOOKING')
and (TravelRecordRmks.RemarkText = 'CREDIT CARD USED')
ORDER BY dbo.vw_gTravelOrderEvent.RecordLocator
Однако - это ничего не возвращает. Вероятно, это действительно очень просто - но я не могу заставить его вернуть требуемый ответ, когда я ищу один TravelEventID, содержащий оба поля Remark Text.
Любая помощь высоко ценится
Приветствия