Php 在同一语句中从2个MySQL表中选择
我需要从一个MySQL表中选择数据并匹配查询中的ID,以从第二个表中获取电子邮件地址。然后输出结果。我目前的代码是:Php 在同一语句中从2个MySQL表中选择,php,mysql,Php,Mysql,我需要从一个MySQL表中选择数据并匹配查询中的ID,以从第二个表中获取电子邮件地址。然后输出结果。我目前的代码是: $sql = "SELECT fk_i_user_id, i_amount FROM osei_t_payment_pro_wallet WHERE i_amount > 0 order by i_amount DESC"; $rows = mysqli_query($conn, $sql); while ($rs = mysqli_fetch_arr
$sql = "SELECT fk_i_user_id, i_amount FROM osei_t_payment_pro_wallet
WHERE i_amount > 0 order by i_amount DESC";
$rows = mysqli_query($conn, $sql);
while ($rs = mysqli_fetch_array($rows, MYSQLI_ASSOC)){
$uid = $rs["fk_i_user_id"];
$cash = $rs["i_amount"] / 1000000;
echo "User ID - ".$uid." Wallet Val - ".$cash.chr(10).chr(13);
}
我想在这个查询中包括:
"SELECT s_email FROM osei_t_user where pk_i_id =".$uid;
并输出结果:
echo "User ID - ".$uid." Wallet Val - ".$cash." - Email: ".(value from above query).chr(10).chr(13);
您可以使用连接。如果第二个表的记录可能不存在,请使用外部联接:
SELECT fk_i_user_id,i_amount, s_email
FROM osei_t_payment_pro_wallet
LEFT OUTER JOIN osei_t_user ON pk_i_id=fk_i_user_id
WHERE i_amount > 0 order by i_amount DESC
外部联接选择与ON子句匹配的记录,但如果父表(osei\u t\u payment\u pro\u wallet)没有匹配的记录,则这些字段将为空
更新的输出(来自OP):
尽管我会这样写:
echo "User ID - {$uid} Wallet Val - {$cash} Email - {$email}\n\r";
您也可以直接使用结果:
echo "User ID - {$rs["fk_i_user_id"]} Wallet Val - {$cash} Email - {$rs["s_email"]}\n\r";
$cash
仍需计算。添加:$email=$rs[“s_email”];echo“用户ID-”$uid。“钱包Val-”$cash。“电子邮件-”$Email.chr(10.chr(13))$电子邮件总是返回空。我在代码中没有看到问题-两个表之间的键匹配吗?抱歉,错误在我这边。。。。剪切粘贴失败:)谢谢,效果很好!
echo "User ID - {$rs["fk_i_user_id"]} Wallet Val - {$cash} Email - {$rs["s_email"]}\n\r";