Вы используете таблицу почтовых индексов как в предложении FROM, так и в предложении INNER JOIN, ни у одного из которых нет псевдонима. Когда вы выполняете INNER JOIN, вам не нужно иметь эту таблицу в предложении FROM, и наоборотКонечно.
Если вы хотите объединить таблицы в предложении FROM, вы должны сделать что-то вроде этого:
SELECT
sub.city AS city, sub.postalcode AS postalcode
FROM
(SELECT
postcode.city AS city, customers.postalcode AS postalcode,
COUNT(customers.postalcode) AS postcode_numbers
FROM
orders, postcode
INNER JOIN
customers ON orders.userID = customers.ID
--INNER JOIN postcode ON customers.postalcode = postcode.city
WHERE
postcode.city = customers.postalcode
GROUP BY
customers.postalcode) sub
WHERE
sub.postcode_numbers > 3;
Таким образом, в основном вы потеряете почтовый индекс INNER JOIN ... line
Другой способ сделать это - использовать только предложение INNER JOIN, которое я предпочитаю.Для этого вам нужно только потерять почтовый индекс в предложении FROM, например:
SELECT
sub.city AS city, sub.postalcode AS postalcode
FROM
(SELECT
postcode.city AS city, customers.postalcode AS postalcode,
COUNT(customers.postalcode) AS postcode_numbers
FROM
orders
INNER JOIN
customers ON orders.userID = customers.ID
INNER JOIN
postcode ON customers.postalcode = postcode.city
GROUP BY
customers.postalcode) sub
WHERE
sub.postcode_numbers > 3;
Надеюсь, это поможет!