0

我又遇到了麻烦!

表格1

  • n: 1
  • n: 2
  • n: 3

表2

  • n: 1
  • n: 3

查询1

  • 结果数:3

查询2

  • 结果数:2

我需要比较这些表,如果Table1 == Table2回显“找到”。所以我做了2个不同的查询,我这样做是这样的:

while($row1 = mysql_fetch_array($Query1))
{
while($row2 = mysql_fetch_array($Query2))
{
if($row1['n'] == $row2['n'] )
{
echo 'found';
}
}
}

有点傻?:\ 因为它似乎只显示第一个结果并停止。

谢谢

编辑

示例:我得到了这张桌子:客户和桌子:VIP 客户。如果有任何具有相同 id 的客户端,我需要在表 VIP 客户端上搜索,并产生回显:“找到它”

4

3 回答 3

1

不确定这是否是您想要的,但您可以在一个查询中执行此操作以查看 vipclients 中是否有任何匹配的记录。

select a.*,b.* ,CASE WHEN b.clientid IS NOT NULL 
       THEN 'FOUND'
       ELSE 'NOT FOUND'
END AS vipexists 
from clients a left outer join vipclients b on a.clientid=b.clientid
于 2012-08-02T02:49:51.047 回答
0

如果我理解正确,您想知道两个表中是否存在相同的数据。您可以将结果存储到两个不同的数组中

$table1 = array();
$table2 = array();
while ($row = mysql_query($result1)){
  $table1[] = $row[0];
}
while ($row = mysql_query($result2)){
  $table2[] = $row[0];
}

然后用array_intersect()找到两者的交集

$intersect = array_intersect($table1, $table2);
echo count($intersect) > 0 ? "Found" : "Not Found";
于 2012-08-02T02:40:20.840 回答
0
    if( !array_diff( $row1, $row2) )
    {
      echo 'found';
    }
于 2012-08-02T02:58:44.030 回答