#mysql #join
#mysql #Присоединиться
Вопрос:
У меня есть две таблицы: a_users и a_student_tutors. Я в основном пытаюсь объединить два по их идентификационным номерам. Тем не менее, я пытаюсь найти участников, которых нет в a_student_tutors, и отобразить их.
вот кодирование, например
$queryone = "SELECT * from a_users JOIN a_student_tutors on a_users.id=a_student_tutors.mem_id ";
$resultone = mysql_query($queryone);
while ($row=mysql_fetch_assoc($resultone)){
$member = $row['mem_id'];
$query = "SELECT * FROM a_users where id != '$member'";
echo $query;
}
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while ($row=mysql_fetch_assoc($result)){
echo "<tr>
<td><a href="members-edit.php?id=".$row['id']."">".$row['name']."</a></td>
<td>".$row['username']."</td>
<td>".$row['address']." | ".$row['city']." | ".$row['postcode']."</td>
<td ><input type="checkbox" name="checkbox[]" id="checkbox[]" value="".$row['id']."" /></td>
</tr>";
}
Комментарии:
1. В чем именно заключается ваш вопрос?
Ответ №1:
Вы также можете использовать левое соединение следующим образом, я знаю, что они работают очень хорошо, так как много использовали их за последние несколько лет.
SELECT a_users.* FROM a_users
LEFT JOIN a_student_tutors
ON a_users.id = a_student_tutors.mem_id
WHERE a_student_tutors.mem_id IS NULL
Ответ №2:
Вам поможет подвыборка.
SELECT * FROM a_users
WHERE id NOT IN (SELECT a_student_tutors.mem_id);
Будьте осторожны с подвыборами, поскольку это сложные запросы, которые могут снизить производительность.
Ответ №3:
Вы должны использовать ЛЕВОЕ СОЕДИНЕНИЕ вместо ВНУТРЕННЕГО СОЕДИНЕНИЯ (JOIN)