2013-09-10 8 views
1

Почему я не могу выполнить этот запрос в следующей базе данных: W3 School Database(Таблицы указаны в правой части)?INNER JOIN Nesting SQL

SELECT Customers.CustomerName, 
     OrderDetails.ProductID 
FROM Customers 
     INNER JOIN Orders 
     ON Customers.CustomerID = Orders.CustomerID 
     INNER JOIN OrderDetails 
     ON Orders.OrderID = OrderDetails.OrderID 

Я пытаюсь найти идентификаторы продуктов, которые заказывают клиенты. Вышеуказанный запрос должен соответствовать клиентам с заказами, а затем принимать эти идентификаторы ордеров и находить правильные OrderDetails для вывода таблицы с именем CustomerName и ProductID.

я получаю следующее сообщение об ошибке:

Syntax error (missing operator) in query expression 'Customers.CustomerID = Orders.CustomerID INNER JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID.

Спасибо заранее.

+4

Я настоятельно советую ** против ** использовать W3Schools. Они не являются точным источником обучения. По возможности используйте документацию по платформе. – Kermit

+1

Работает отлично для меня, когда я вставляю его в поле и нажимаю «запустить SQL» –

+1

W3Schools отлично, я многому научился! Запрос, который вы опубликовали, отлично работает, вы уверены, что это то же самое, что и запрос, который дает ошибку? – Andomar

ответ

1

Является ли это базой данных Access? Если да, то вам нужно скобки, когда есть больше чем один JOIN:

SELECT Customers.CustomerName, 
    OrderDetails.ProductID 
FROM (Customers 
    INNER JOIN Orders 
    ON Customers.CustomerID = Orders.CustomerID) 
    INNER JOIN OrderDetails 
    ON Orders.OrderID = OrderDetails.OrderID 
+0

Это действительно работает в Access, если ваш браузер не поддерживает WebSQL! –

0

Это хорошо работает в Chrome, но терпит неудачу в Firefox.

Причина в том, что страница w3c запускает SQL-запросы в вашем браузере с помощью WebSQL, чтобы не перегружать сервер. Для браузеров, которые не поддерживают WebSQL, он обращается к ASP WS, который запускает запросы в базе данных удаленного доступа.

Вот почему, когда в Firefox каждому соединению требуется скобки, доступ к là Access, но в Chrome или любом другом браузере, поддерживающем websql, они вам не нужны.