比较两个表中的记录

时间:2014-04-08 00:14:20

标签: php mysql sql

我有一个表显示来自数据库的记录。我的一个列是删除,我需要的是如果值在table1和table2中,则使链接无效。或者,如果值仅在table1上,则删除按钮不应为空。请帮忙?

$query1 = $mysqli1->query("select * from code WHERE item LIKE '%$search%' OR item_code LIKE '%$search%' OR cat_code LIKE '%$search%' order by item_code ASC");
$query2 = $mysqli1->query("SELECT count(*) FROM code");
$query3 = $mysqli->query("SELECT count(*) FROM app");

while($r = $query1->fetch_assoc()){
echo"<tr>
    <td>".$r['item']."</td>
    <td>".$r['cat_code']."</td>
    <td>".$r['item_code']."</td>";
    if(mysqli_num_rows($query3) == 0 && mysqli_num_rows($query2) == 0) {
    echo "<td><a href='#' id='".$r['id']."' class='del'><img src='../images/del.png'></a></td>";
    } else {
    echo "<td><a href='javascript:void(0)'><img src='../images/stop.png'></a></td>";
    echo"</tr>";
}

如果数据库中的两个表都有ACR-100,则链接应为无效

表1 -------------- 表2

 Code        |         Code  
------       |       ------
ACR-100      |       ACR-100 

否则,如果ACR-100仅在table1上,则链接不应该是无效的。

表1 -------------- 表2

 Code        |         Code  
------       |       ------
ACR-100      |        

1 个答案:

答案 0 :(得分:0)

如果你需要知道的是代码是否存在于table2中那么可能就是这样的(我猜一些列名等等,所以你必须让它适应你的数据库):

$query1 = $mysqli1->query("select code.*, app.item_code as app_code from code LEFT JOIN app ON code.item_code = app.item_code WHERE code.item LIKE '%$search%' OR code.item_code LIKE '%$search%' OR code.cat_code LIKE '%$search%' order by code.item_code ASC");

while($r = $query1->fetch_assoc()){
echo"<tr>
<td>".$r['item']."</td>
<td>".$r['cat_code']."</td>
<td>".$r['item_code']."</td>";
if($r['app_code'] == '') {
echo "<td><a href='#' id='".$r['id']."' class='del'><img src='../images/del.png'></a></td>";
} else {
echo "<td><a href='javascript:void(0)'><img src='../images/stop.png'></a></td>";
echo"</tr>";
}

即使table2中没有对应的值,左连接也将返回table1中的值,但对于从table2中选择的任何列,它将返回NULL。