繁体   English   中英

试图从JOIN mysql中显示其中一个表中没有的结果

[英]trying to display results in from a JOIN mysql that are no present in one of the tables

我有两个表,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>";
}

您也可以使用左连接,如下所示,我知道这些工作非常好,在过去的几年中使用了很多。

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

Subselect将帮助您。

SELECT * FROM a_users 
WHERE id NOT IN (SELECT a_student_tutors.mem_id);

小心选择子选项,因为这些是可能会降低性能的硬查询。

您应该使用LEFT JOIN而不是INNER JOIN(JOIN)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM