gpt4 book ai didi

mysql - 如何查找上次输入的记录

转载 作者:行者123 更新时间:2023-11-29 22:46:57 26 4
gpt4 key购买 nike

我有两个表:与会者和历史记录。历史记录表是我为所有与会者发布付款的地方。它还存储历史 ID 和参加者 ID。我用来尝试获取特定与会者在历史记录表中输入的最后一条记录的查询是:

$stmt = $db->prepare('SELECT a.fname, a.lname, h.amount, h.subsidy, h.last_payment, h.balance 
FROM history AS h
INNER JOIN
attendees AS a
ON a.attendeeid = h.attendeeid
WHERE a.attendeeid = :id
ORDER BY historyid DESC LIMIT 1)');
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
$stmt->execute();
$result = $stmt->fetchAll();

但是代码根本无法返回任何内容。由于历史 ID 可能大于我尝试检索的历史 ID,因此如何关联该与会者的最大历史 ID,以便在“历史记录”表中获取为他们输入的最后一条记录?我正在使用的显然不是答案。预先感谢您的帮助。

抱歉。架构是:


TABLE <code>attendees</code> (
<code>attendeeid</code> int(10) unsigned NOT NULL AUTO_INCREMENT,
<code>fname</code> varchar(20) NOT NULL,
<code>lname</code> varchar(20) NOT NULL,
<code>dojid</code> varchar(10) NOT NULL,
<code>address1</code> varchar(25) NOT NULL,
<code>address2</code> varchar(25) NOT NULL,
<code>city</code> varchar(20) NOT NULL,
<code>state</code> char(2) NOT NULL,
<code>zipcode</code> varchar(5) NOT NULL,
<code>phonenumber</code> varchar(15) NOT NULL,
<code>memberid</code> int(10) unsigned NOT NULL,
PRIMARY KEY (<code>attendeeid</code>),
KEY <code>memberid</code> (<code>memberid</code>),
CONSTRAINT <code>attendees_ibfk_2</code> FOREIGN KEY (<code>memberid</code>) REFERENCES <code>members</code> (<code>memberid</code>) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



TABLE <code>history</code> (
<code>historyid</code> int(10) unsigned NOT NULL AUTO_INCREMENT,
<code>amount</code> float NOT NULL,
<code>subsidy</code> char(1) NOT NULL,
<code>last_payment</code> date NOT NULL,
<code>amount_paid</code> float NOT NULL,
<code>balance</code> float NOT NULL,
<code>attendeeid</code> int(10) unsigned NOT NULL,
<code>memberid</code> int(10) unsigned NOT NULL,
PRIMARY KEY (<code>historyid</code>),
KEY <code>attendeeid</code> (<code>attendeeid</code>),
CONSTRAINT <code>history_ibfk_2</code> FOREIGN KEY (<code>attendeeid</code>) REFERENCES <code>attendees</code> (<code>attendeeid</code>) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

最佳答案

请问您能提供这两个表的结构吗?我猜您的表格包含日期列或类似的内容。

无论如何,我会尝试这样的事情:

select * 
from (select a.attendeeid,max(h.id)
FROM history AS h INNER JOIN attendees AS a ON a.attendeeid = h.attendeeid
group by a.attendeeid) as maxHistoryPerAttendee

这样,您将拥有每个与会者 ID 的最大历史记录 ID。我猜测最大 id 是最后插入的行。

关于mysql - 如何查找上次输入的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29041890/

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