сравнить результаты с другой таблицей в PHP / MySQL - PullRequest
0 голосов
/ 22 мая 2009

У меня есть 2 таблицы ...

Table1:
ID, Name, Country
Table2:
ID, accountID, parent

table1.id = table2.acountID

Мой скрипт выполняет поиск всех записей с определенным родителем. Я хочу сравнить эти результаты с таблицей 1 и вернуть все записи, которых не было в поиске.

например. Таблица1:

1, Bill, AU
2, Charles, US
3, Clare, CA

Table2:

1, 1, Mary
2, 1, William
3, 2, Henry

Поиск (выберите * из таблицы2, ГДЕ accountID = '1') возвращает:

1, 1, Mary
2, 1, William

и я хочу получить следующие результаты (из таблицы 1):

2, Charles, US
3, Clare, CA

Ответы [ 2 ]

1 голос
/ 22 мая 2009
SELECT * FROM table1 WHERE ID NOT IN
  (SELECT * FROM table2 WHERE accountID = '1')
0 голосов
/ 22 мая 2009

Ваш поиск возвращает все строки в таблице 2, где accountID = 1

Чтобы вернуть все строки, которые не были возвращены при поиске, вы найдете все строки в Таблице 1, которые имеют идентификатор, отличный от 1, или не имеют соответствующих строк в Таблице 2.

SELECT
  ID
FROM
  Table1
WHERE
  ID <> 1
  OR NOT EXIST (SELECT * FROM Table2 WHERE accountID = 1)

Кажется простым?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...