求PHP代码,有A和B两个数据表。取出在A中而不在B中的数据记录。 例如A表:id user1 zhangsan2 lisi3 ermazi例如B表id usn1 ada2 lisi取出A表中 user ,与B表中中的 usn 不同的那些记录。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from A where user not in (select usn from b); select * from A where not exists(select 1 from B where usn=A.user); select * from A where user not in(select A.id,A.user from A,B where A.user=B.usn) select user from A a where id not in (select B.ID from B b where a.id=b.id) 来晚一步select * from A where user not in(select A.id,A.user from A,B where A.user=B.usn) select * from A where user not in(select A.user from A,B where A.user=B.usn) 修正下! select user from A a where user no in (select usn from B bwhere a.user=b.usn); 我这两个表不是在同一个服务器下的啊用PHP怎么搞啊 我这两个表不是在同一个服务器下的啊用PHP怎么搞啊 这个要两个服务器上都有接口才能实现的.在B服务器上: http://B/b.php在A服务器上: http://A/a.phpb.php 代码大体如下----------------------$un = $_GET['un'];...查询 B表中有没用 $un...if(有){ echo 'Y';} else { echo 'N';}a.php 代码大体如下------------------------------...$data = 查询表A中的记录foreach($data as $row) { $url = "http://B/b.php?un=".$row['user']; $result = fopen($url); if($result=='Y'){ echo '有记录' } else { echo '没用记录'; }}------------------------------以上方法是使用了 fopen 实现,使用时访问a.php, a.php 再去查询b.phpfopen 要求服务器 allow_url_fopen = on (一般都支持)fopen 是GET方式提交数据的,想要用POST方式可以参考 CURL 或 PEAR的HTTP包以上是基本思路,具体编码时需要优化的地方还很多数据量大时,php服务器会超时,尽量配合前台js限制每次查询数量 select user from A where user not in (select usn from B); 方法一-- 分别读出A和B表的记录, 放进二维数据, 再整合-- 假如两个表的結果放在这两个二维数据里$resA , $resB , 如下$res = array();foreach($resA as $rowA){ foreach($resB as $rowB){ if( $rowA['user'] != $rowB['nsn'] ) $res[] = $rowA; }}//最后$res就是你要的結果, 没测试过, 思路大概是这样,//不知你具体情况怎么样, 如果你把数据读成一维数据, 里面那个循环就不用了, 更效率方法二, 就是把数据少的那个表读出, 再插入另一个数据库,用七楼那条查询語句搞定 $conn1=mysql_connect('11.11.11.11','auser','apassword')or die("A连接失败:".mysql_error());$conn2=mysql_connect('22.22.22.22','buser','apassword')or die("B连接失败:".mysql_error());mysql_select_db('a',$conn1);mysql_select_db('b',$conn2);$sqla="select user from A";$rs=mysql_query($sqla,$conn1);while($rw=mysql_fetch_row($rs)){ $sqlb="select usn from B where usn=".$rw[0]; $rsb=mysql_query($sqlb,$conn2); $row=mysql_fetch_row($rsb);if(count(trim($row[0]))>0){ //echo "相等";}else{ echo $rw[0]."<br>";}}输出的结果就是你要的了! 不过数据量大时, 建议两个表的数据读出后处理, 一次一次地查询B表, 毕竟比在php处理慢 php入门一个月了,求学习计划........ 请问用PHP的CURL模拟POST提交相关参数设置问题 诚聘网站PHP工程师 如何获取服务器目录 php 关于$_POST的问题 菜鸟发问 UML建模包括画哪几种图啊? PHP生成图片 中文就乱码 怎样自动转接网站 php中如何显示函数本身的内容 php4.3.0的问题 怎么固定ie 设置 求一段关联代码
select user from A a where id not in (select B.ID from B b where a.id=b.id)
select * from A where user not in(select A.id,A.user from A,B where A.user=B.usn)
select * from A where user not in(select A.user from A,B where A.user=B.usn)
修正下!
select user from A a where user no in (select usn from B bwhere a.user=b.usn);
用PHP怎么搞啊
用PHP怎么搞啊
在B服务器上: http://B/b.php
在A服务器上: http://A/a.phpb.php 代码大体如下
----------------------
$un = $_GET['un'];
...
查询 B表中有没用 $un
...
if(有){
echo 'Y';
} else {
echo 'N';
}a.php 代码大体如下
------------------------------
...
$data = 查询表A中的记录foreach($data as $row) {
$url = "http://B/b.php?un=".$row['user'];
$result = fopen($url);
if($result=='Y'){
echo '有记录'
} else {
echo '没用记录';
}
}------------------------------
以上方法是使用了 fopen 实现,使用时访问a.php, a.php 再去查询b.phpfopen 要求服务器 allow_url_fopen = on (一般都支持)
fopen 是GET方式提交数据的,想要用POST方式可以
参考 CURL 或 PEAR的HTTP包
以上是基本思路,具体编码时需要优化的地方还很多
数据量大时,php服务器会超时,尽量配合前台js限制每次查询数量
foreach($resA as $rowA){
foreach($resB as $rowB){
if( $rowA['user'] != $rowB['nsn'] ) $res[] = $rowA;
}
}//最后$res就是你要的結果, 没测试过, 思路大概是这样,
//不知你具体情况怎么样, 如果你把数据读成一维数据, 里面那个循环就不用了, 更效率
方法二,
就是把数据少的那个表读出, 再插入另一个数据库,用七楼那条查询語句搞定
$conn1=mysql_connect('11.11.11.11','auser','apassword')or die("A连接失败:".mysql_error());
$conn2=mysql_connect('22.22.22.22','buser','apassword')or die("B连接失败:".mysql_error());
mysql_select_db('a',$conn1);
mysql_select_db('b',$conn2);
$sqla="select user from A";
$rs=mysql_query($sqla,$conn1);
while($rw=mysql_fetch_row($rs)){
$sqlb="select usn from B where usn=".$rw[0];
$rsb=mysql_query($sqlb,$conn2);
$row=mysql_fetch_row($rsb);
if(count(trim($row[0]))>0){
//echo "相等";
}else{
echo $rw[0]."<br>";
}}输出的结果就是你要的了!
不过数据量大时, 建议两个表的数据读出后处理, 一次一次地查询B表, 毕竟比在php处理慢