Обновления: см. Ниже
У меня есть таблица: данные
+-----------------------+--------------+-----------+
| State | d_country | d_postcode|
+-----------------------+--------------+-----------+
| State1 | Country1 | 1111 |
| State2 | Country2 | 2222 |
| State3 | Country3 | 3333 |
| State4 | Country4 | 4444 |
+-----------------------+--------------+-----------+
И еще одна таблица: пользователь
+-----------------------+--------------+-----------+
| Name | u_country | u_postcode|
+-----------------------+--------------+-----------+
| Name1 | Country3 | 3333 |
| Name2 | Country5 | 5555 |
| Name3 | | 6666 |
| Name4 | Country6 | 6666 |
| Name5 | Country6 | 6666 |
+-----------------------+--------------+-----------+
Какой SQL следует использовать для:
Определите количество (количество) стран, которые не указаны в табличных данных. Например, u_postcode
не указан в d_postcode
, это 5555 и 6666. Он вернет 2.
Укажите имя и название страны, которой еще нет в табличных данных.
Обновление
- Я хочу использовать группировку для фильтрации почтового индекса и сделать Name3 и Name4 разными строками.
Например:
+-----------------------+--------------+-----------+
| Name | u_country | u_postcode|
+-----------------------+--------------+-----------+
| Name2 | Country5 | 5555 |
| Name3 | | 6666 |
| Name4 | Country6 | 6666 |
+-----------------------+--------------+-----------+
Любая возможная идея?
Замечания: Исправил себя
SELECT DISTINCT Name, u_country, u_postcode FROM user
WHERE u_postcode NOT IN (SELECT d_postcode FROM data)