从不在另一个表中的表中获取数据行

时间:2015-05-12 13:13:24

标签: php

我遇到这个问题的时间很长,如果你们能帮我解决这个问题,我会很高兴。

这是插图。

例如,您有一个名为matrics的表,该表有一个名为'matric_num'的列。

现在,您为用户创建一个注册页面,其中一个字段是选择任何matric num,并且在用户可能选择了matric数字后,填写表单的其余部分并单击提交按钮,它应该插入细节到数据库。 如果其他用户想要注册,则不应在选项菜单中列出上一个用户选择的主编号。

这就是我的所作所为。

$query = mysqli_query($con, "SELECT *FROM `users`");
$rows = mysqli_num_rows($query);
echo "<select>";

for($i=1;$i<=$rows;$i++)
{
$fetch_user_matric = mysqli_fetch_array($query);
$matric_num = $fetch_user_matric['matric_num'];

$matric_query = mysqli_query($con, "SELECT *FROM `matrics` WHERE `matric_no` <> '$matric_num'");
$matric_rows = mysqli_num_rows($matric_query);

for($j=1;$j<=$matric_rows;$j++)
{
    $fetch_matric_num = mysqli_fetch_array($matric_query);
    $matric_no = $fetch_matric_num['matric_no'];

    echo "<option value='$matric_no'>$matric_no</option>";
}
}

echo "</select>";

它仅显示数据库中的第一个matric编号,而应显示任何用户未使用的所有matric编号。

请问您认为sql查询有什么问题。

感谢。

1 个答案:

答案 0 :(得分:1)

试试这个问题:

SELECT * FROM `matrics` WHERE `matric_no` not in (select `matric_num` from `users`)