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».Проблема SQL JOIN в MS Access 2007
Edit:
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
На самом деле это один работает отлично и дает мне нужный номер документа, но то, что я хочу, чтобы вывести это имя, которое содержится в таблице Заемщика.
Вы действительно используете MySQL для прототипа для MS Access? Просто любопытно. –
Это не источник вашей проблемы (проблема с JOIN без INNER/LEFT/RIGHT - проблема), но почему вы сделали одно из своих ячеек явно, l => bc и одно неявно, bw => l? Оба являются INNER JOINs, поэтому должна быть какая-то проблема, выполняющая как JOIN. Хотя Jet обычно оптимизирует эквивалентные неявные и явные JOINs одинаково, я хотел бы, чтобы это было явным JOIN - я никогда не использую неявные JOIN, кроме случаев, когда есть веские основания для этого. –
@Larry: MySQL - это то, что у меня есть в качестве среды тестирования дома. К сожалению, у меня нет Access 2007 для тестирования прямо сейчас, и мой ответ на то, что на самом деле помогло, будет опубликован не ранее, чем в понедельник. – User3419