PHP mySQL - выберите уникальное значение, которое не используется из таблицы dirrefent - PullRequest
0 голосов
/ 19 мая 2010

Обновления: см. Ниже

У меня есть таблица: данные

+-----------------------+--------------+-----------+
| 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.

Укажите имя и название страны, которой еще нет в табличных данных.

Обновление

  1. Я хочу использовать группировку для фильтрации почтового индекса и сделать 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) 

1 Ответ

5 голосов
/ 19 мая 2010

Попробуйте это.

SELECT Name, u_country, u_postcode FROM user 
WHERE u_postcode NOT IN (SELECT d_postcode FROM data)

Надеюсь, это поможет

...