Я новичок в SQL.
Я хочу выполнить запрос, включающий две таблицы как в виде эквиджоин, так и в виде естественного соединения, где я подсчитываю, сколько клиентов размещали заказы по городам. Я предполагаю, что клиент разместил заказ, если его идентификатор клиента появляется в отношении ordertable
.
Я пытаюсь объединить equijoin, COUNT()
и GROUP BY в одном запросе, а затем повторить то же самоезапросить с помощью NATURAL JOIN
в другом.
Пожалуйста, обратитесь к приведенному ниже коду для моих попыток и их результатов.
Следующее уравнение:
SELECT customer.city, COUNT(*) AS total FROM customer, ordertable
WHERE customer.cust_id = ordertable.cust_id
GROUP BY customer.city
ORDER BY customer.city ASC
;
выход
- Город |Количество
- SF |1
- SLC |7
- Тусон |2
Но:
SELECT city, COUNT(*) AS total
FROM customer
NATURAL JOIN orderline
GROUP BY customer.city, city
ORDER BY customer.city ASC
;
урожайность
- Город |Итого
- ЛА |34
- SF | 17
- SLC |170
- Тусон |34
Я считаю, что первый набор результатов верен, но я не понимаю, почему два разных подхода дают разные результаты.