2016-02-25 3 views
0

Как определить, выходит ли отдельный идентификатор значения из одной таблицы в другие таблицы или нет, используя php.Как проверить идентификатор одной таблицы на другую таблицу?

Например: Пусть table1 имеют id (не первичный или уникальный) 4, 5, 6, 4, 6, как проверить, если id из table2 имеют 4, 5, 6 или нет?

$query_check= "select distinct(project_code) from table1"; 
$projects_check = mysql_query($query_check); 

while ($result_check = mysql_fetch_array($projects_check)){ 
    $all[] = $result_check[0]; 
} 

$query = "select id from table2"; 
$projects = mysql_query($query); 
while ($result = mysql_fetch_array($projects)){ 
    foreach($all as $all_val){ 
     $pro_code = $result[0]; 
     if($pro_code != $all_val){ } 
    } 
} 
+0

, что вы пробовали до сих пор? Пожалуйста, разместите связанные структуры таблиц ('create table code') – 1000111

+0

Я упоминаю некоторый код php выше .. –

+0

Что вы хотите, чтобы результат был? логическое? или таблицы id's – sagi

ответ

0

Это SQL может помочь:

SELECT table2.id 
FROM table2 
WHERE table2.id NOT IN (
    SELECT DISTINCT table1.id 
    FROM table1 
) 
+0

спасибо, что это работает –

0
SELECT table2.id 
FROM table2 
WHERE table2.id IN (
    SELECT DISTINCT table1.id 
    FROM table1 
) 
0

Чтобы получить список всех кодов проекта из table1, которые являются идентификаторами в table2: -

SELECT DISTINCT table1.project_code 
FROM table1 
INNER JOIN table2 
ON table1.project_code = table2.id 

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

SELECT DISTINCT table1.project_code 
FROM table1 
LEFT OUTER JOIN table2 
ON table1.project_code = table2.id 
WHERE table2.id IS NULL 

Если записи на 2, что вы хотите, что не на 1

SELECT DISTINCT table2.id 
FROM table2 
LEFT OUTER JOIN table1 
ON table1.project_code = table2.id 
WHERE table1.project_code IS NULL 
+0

table2.id IS NULL для чего? –

+0

Но мне нужно выбрать идентификатор таблицы 2 –

+0

В первом запросе перечислены все записи из таблицы1, которые находятся на таблице2 (это то, что, как я думал, вы хотели). Второй дает вам все записи в таблице1, которые НЕ находятся на таблице2 (он делает LEFT OUTER JOIN, а затем проверяет table2.id за то, что он является NULL, т.е. нет совпадения). – Kickstart

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