2014-02-17 3 views
2

Я использую php и mysql. У меня есть две таблицы,Как искать существование записи в одной таблице из другой с помощью php и mysql

table A (Id: auto-increment , idno) table B (Id:auto-increment, sidno).

В таблице А содержится около 3000 записей, а в таблице В содержится около 27000 записей. Я хочу найти, есть ли каждая из записей в таблице A в таблице B, если не печатать записи, которые не существуют в таблице B.

Я попытался получить записи в таблице A и проверить их на таблицу A, но я не смог добиться успеха. И для завершения запроса потребовалось очень много времени.

И я искал повсюду, но не мог получить что-то вроде этого.

Пожалуйста, кто-нибудь может мне помочь.

Спасибо!

+0

показать свою структуру таблицы – sumit

+0

Вы ищете запрос по запросу, чтобы решить вашу проблему? Что вы уже пробовали? Можете ли вы подробнее рассказать о своем требовании? – Neels

+0

Таблица A: field1 (int, первичный ключ, автоинкремент), field2 (int) и TableB: field1 (int, первичный ключ, автоинкремент), field2 (int) –

ответ

1

Следующий запрос может вернуть все IDNO, которые не находятся в таблице B

SELECT * FROM tableA WHERE `idno` NOT IN (SELECT `sidno` FROM tableB) 

SQL Fiddle Demo

+0

Спасибо! Это именно то, что я ищу. –

+0

Я пытаюсь выполнить ваш запрос следующим образом: $ qr = mysql_query ("SELECT * FROM tableA WHERE' idno' NOT IN (SELECT 'sidno' FROM tableB)"; while ($ row = mysql_fetch_array ($ qr)) {echo $ строка [sidno];} но я получаю ошибку из-за mysql_fetch_array, я заменил ее mysql_fetch_assocs, но имею ту же проблему. Пожалуйста, помогите мне –

+0

, что вы получили? – krishna

0

Попробуйте

SELECT * FROM table2 t where sid NOT IN (select id from table1) ; 

Demo

+0

Это то, что я получил, когда запрос запущен: –

+0

Вы хотите, чтобы запрос вроде этого или любого другого запроса? – krishna

0

Ok. Попробуйте следующее:

SELECT tableB.Id, tableB.sidno 
FROM tableA 
RIGHT JOIN tableB ON tableA.Id = tableB.ID 
WHERE tableA.Id = 'NULL'; 

Это должно дать вам все записи, которые вы хотите.

Смежные вопросы