gpt4 book ai didi

php - 如何显示表 B 中的信息,其中表 A 中的字段在列中具有数字,例如 2345678。我希望所有具有该编号的列仅出现

转载 作者:行者123 更新时间:2023-11-29 18:22:51 25 4
gpt4 key购买 nike

我有表“A”,其中包含 ID、姓名、性别、帐号。 B 表有 ID、Name、gender、account_number 等。表B存储有关不同帐户用户和号码的所有信息。我希望如果表 A 中具有 account_number 的行(例如 123456)与表 B 中具有相同 account_number 的行匹配,则打印表 B 中的所有信息。

我尝试这样做,但它无法正常工作......

<? php

require_once 'dbconfig.php';

$stmt = $db_con->prepare("SELECT * FROM trans INNER JOIN reg ON reg.Accnumber = trans.Transfer_id ");
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<tr>
<td height="38"><?php echo $row['re_name']; ?></td>
<td><?php echo $row['Bank_name']; ?></td>
<td><?php echo $row['re_number']; ?></td>
<td>$<?php echo $row['re_amount']; ?></td>
<td><?php echo $row['swift_code']; ?></td>
<td><?php echo $row['t_date']; ?></td>
<td align="center">
<?php

我需要帮助

最佳答案

你的意思是左连接?选择表 A 中的所有值,然后仅从表 B 中获取表 A 中的数据?

SELECT a.*, b.*
FROM a
LEFT JOIN b USING(account_number)

注意,第一个表应该是数据较少的表。如果您的交易列表较小并且您想获取其帐户持有人的详细信息,则为:

SELECT * 
FROM trans
LEFT JOIN reg ON reg.accnumber = trans.accnumber
WHERE reg.accnumber = '123456'

如果您有客户名单并希望查找他们的交易:

SELECT reg.*, group_concat(trans.transfer_id)
FROM reg
LEFT JOIN trans USING (accnumber)
GROUP BY reg.accnumber

您可以过滤该数据,但如果您的客户有超过 1 笔交易,您可能需要使用 Have 而不是Where:

SELECT reg.*, count(trans.transfer_id) as qty
FROM reg
LEFT JOIN trans ON reg.accnumber = trans.accnumber
GROUP BY reg.accnumber
HAVING reg.accnumber = '123456'

如果您只需要交易,您可以从一张表中请求:

SELECT * FROM trans WHERE accnumber = '123456'

如果你的表是规范化的,你的 trans 表中不应该有 accnumber 字段,它是 reg.id 的唯一外键,那么你的查询将是:

SELECT trans.*
FROM trans
LEFT JOIN reg ON reg.id = trans.user_id
WHERE reg.accnumber = '123456'

关于php - 如何显示表 B 中的信息,其中表 A 中的字段在列中具有数字,例如 2345678。我希望所有具有该编号的列仅出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46428807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com