SELECT DISTINCT bw.Bor_name
FROM Borrower AS bw, Loan AS l
JOIN Book_Copy AS bc
ON l.Bc_id = bc.Bc_id
WHERE bw.Bor_id = l.Bor_id
GROUP BY l.Bor_id, bc.Bt_id
HAVING COUNT(bc.Bt_id) > 1
AND COUNT(l.Bor_id) > 1;
這在MySQL測試環境中完美工作,但在MS Access 2007中無法正常工作,而實際需要它運行。我還有一些涉及使用JOIN的其他查詢,它也給它們提供了相同的錯誤:「FROM子句中的語法錯誤」。MS Access 2007中的SQL JOIN問題
編輯:
SELECT DISTINCT l.Bor_id
FROM Loan AS l
INNER JOIN Book_Copy AS bc
ON l.Bc_id = bc.Bc_id
GROUP BY l.Bor_id, bc.Bt_id
HAVING COUNT(bc.Bt_id) > 1
AND COUNT(l.Bor_id) > 1
其實這個工作正常,並給了我需要的ID號,但我想輸出是包含在借款人的表名。
你真的使用MySQL爲MS Access的原型嗎?只是好奇。 – 2010-10-22 14:58:44
這不是問題的根源(沒有INNER/LEFT/RIGHT的JOIN是問題),但是爲什麼你明確地做了一個連接,l => bc,還有一個隱式地bw => l?兩者都是INNER JOIN,因此在JOIN中應該有任何問題。雖然Jet通常優化相同的隱式和顯式JOIN,但我希望這是一個明確的JOIN--除非有充分的理由這麼做,否則我絕不使用隱式JOIN。 – 2010-10-23 01:05:09
@Larry:MySQL是我在家裏的測試環境。不幸的是,我現在沒有使用Access 2007進行測試,並且我對實際幫助的迴應將在週一之前發佈。 – User3419 2010-10-23 17:33:47