每个循环我有两个。每个人都在不同的表上运行
$nores_std="SELECT std_id,std_name FROM student WHERE std_class = '$cl' ";
$nores_q = mysqli_query($link,$nores_std);
foreach ($nores_q as $name_std){
echo $name_std['std_id']; echo '<br>';
}
echo '<br>';
$no_select = "SELECT std_id,std_name FROM selection WHERE std_class = '$cl' ";
$no_select_q = mysqli_query($link,$no_select);
foreach ( $no_select_q as $std_sel){
echo $std_sel['std_id'];
echo '<br>';
}
第一个结果是:
**554553**
**554557**
554561
**554566**
554573
**554577**
554581
554582
554587
**554590**
554591
554593
554596
554597
554599
554602
554603
554604
554607
554619
554620
554632
554637
554640
554643
554648
**554549**
第二个结果是:
554566
554577
554549
554590
554553
554557
我想检查重复项并删除重复值,仅显示未重复的值
答案 0 :(得分:1)
PHP
解决方案通过array-diff:
$nores_std="SELECT std_id,std_name FROM student WHERE std_class = '$cl' ";
$nores_q = mysqli_query($link,$nores_std);
foreach ($nores_q as $name_std){
$a[] = $name_std['std_id'];
}
$no_select = "SELECT std_id,std_name FROM selection WHERE std_class = '$cl' ";
$no_select_q = mysqli_query($link,$no_select);
foreach ( $no_select_q as $std_sel){
$b[] = $std_sel['std_id'];
}
$res = array_diff($a, $b);
注意您可以使用array-column来避免foreach
循环
我会重新检查数据方案-您可能希望以其他方式获取数据
答案 1 :(得分:0)
最有效的方法是在单个查询中从两个表中选择一个:
SELECT DISINCT std_id, std_name FROM
(
SELECT std_id, std_name FROM student WHERE std_class = '$cl'
UNION SELECT std_id, std_name FROM selection WHERE std_class = '$cl'
) t