2011-10-04 68 views
1

我使用下面的查詢來尋找客戶,誰是從醫學部:MS Access 2007中查詢到任何結果

SELECT client.clientID, client.firstname, client.lastname, client.organization, 
     client.department, client.email, events.Date, events.title, 
     eventAttendance.eventID, eventAttendance.clientID, 
     eventAttendance.attended 
FROM client INNER JOIN 
    (events INNER JOIN eventAttendance ON events.id = eventAttendance.ID) 
    ON client.clientID = eventAttendance.clientID 
WHERE client.organization like '%medicine' 

在該表中,可能性是「醫學院」和醫學系」 ;」但是,沒有記錄被返回。我錯過了什麼?

謝謝。

回答

2

在Access通配符是*不是%

改變你的SQL就像這樣:

like '*medicine' 
+0

這確實返回了一些結果。當我嘗試 其中client.organization ='醫學院',沒有任何返回。爲什麼會這樣? – aparker81

+0

@ aparker81 - 不確定,但我猜想在文本的正面或末尾添加了一些額外的字符。你可以試試這個理論來測試這個理論:client.organization like'* School of Medicine *' – Aducci

+0

謝謝你的建議。它沒有返回結果。也許我會提出另一個問題。 – aparker81

0

我認爲這很可能是你並不總是有一個事件,所以你需要LEFT JOIN:

SELECT client.clientID, client.firstname, client.lastname, client.organization, 
     client.department, client.email, events.Date, events.title, 
     eventAttendance.eventID, eventAttendance.clientID, 
     eventAttendance.attended 
FROM client LEFT JOIN 
    (events LEFT JOIN eventAttendance ON events.id = eventAttendance.ID) 
    ON client.clientID = eventAttendance.clientID 
WHERE client.organization like '*medicine'