php & mysql создать запрос на присоединение - PullRequest
2 голосов
/ 03 ноября 2011

Я пытаюсь создать запрос на присоединение. Я занят на сайте викторины и пытаюсь отобразить список всех тестов, с которыми пользователь НЕ связан.

Таблица1 (Эта таблица содержит список всех доступных тестов)

id = int

test_name = varchar

пример:

1, Test1

2, Test2

3, Test3

Table2 (Эта таблица содержит идентификатор пользователя и свидетельство, с которым пользователь уже связан)

id = int

id_usrs = int

id_test = int

пример: 1, 1, 1

2, 1, 2

Так что, в принципе, если мой запрос работает, то из таблицы 2 только Test3 должен появиться в моем результате.

Запрос:

$sql0 = "SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id = table2.id_test WHERE table2.id_usrs = '$userid2' AND table2.id_test Is Null ";
$result0 = mysql_query($sql0);
while($row0 = mysql_fetch_assoc($result0)) {

 $test_name=$row['test_name'];
echo $test_name;
}

Вопрос: Мне нужно отобразить результат из таблицы2, которого нет в таблице1

1 Ответ

0 голосов
/ 03 ноября 2011

Это должен быть ваш запрос

SELECT * 
FROM table1 
WHERE table1.`id` NOT IN 
       (SELECT table1.`id` 
        FROM table1 
           JOIN table2 
           ON table1.id = table2.id_test 
        WHERE table2.id_usrs = 1); 
...