为了账号安全,请及时绑定邮箱和手机立即绑定

sql中如何匹配两个表的列

sql中如何匹配两个表的列

PHP
呼啦一阵风 2023-07-21 18:24:14
我有这个代码$db = \Config\Database::connect();$query = $db->query("select * from g WHERE g_status = '0' ORDER BY g_date ASC Limit 10;");foreach ($query->getResult() as $g) {    $g_amount = $g->g_amount; }$query2 = $db->query("select * from g WHERE p_status = '0' ORDER BY p_date ASC Limit 10;");foreach ($query2->getResult() as $p) {    $p_amount = $p->p_amount; }if($p_amount ==  $g_amount){echo "do something";}else{echo "No match";}在这里,我尝试在表 g 和表 p 之间进行匹配...如果表 g 中的任何列 == 表 p 中的任何列,无论列数如何,请执行某些操作,但它总是回显“不匹配”我设置了“Limit 10”,以防表中的行数较多,它只会与“ordering”命令匹配前 10 行。请我需要一些帮助。
查看完整描述

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

首先,以数组形式获取数据


$db = \Config\Database::connect();

$query = $db->query("select * from g WHERE g_status = '0' ORDER BY g_date ASC Limit 10;");

$g_results = $query->getResult('array'); 

$g_amounts = array_column($g_results,'g_amount');


$query2 = $db->query("select * from g WHERE p_status = '0' ORDER BY p_date ASC Limit 10;");

$p_results = $query2->getResult('array'); 

$p_amounts = array_column($p_results,'p_amount');


foreach(array_intersect($g_amounts,$p_amounts) as $amount){

   echo "do something";

}


查看完整回答
反对 回复 2023-07-21
?
炎炎设计

TA贡献1808条经验 获得超4个赞

为什么不使用 aJOIN看看它是否返回一些东西?不确定我的语法是否正确,我不经常进行 JOIN:

SELECT * FROM g g_table JOIN p p_table ON g_table.g_amount = p_table.p_amount WHERE g_table.status = '0' AND p_table.status = '0'


查看完整回答
反对 回复 2023-07-21
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信