gpt4 book ai didi

MYSQL内连接有限制吗?

转载 作者:行者123 更新时间:2023-11-29 23:33:36 25 4
gpt4 key购买 nike

我有两张表,一张保存工具,另一张保存工具历史记录,例如位置和谁拥有它。我需要在此表上运行搜索问题并尝试过此操作

SELECT tblmaskin.* 
FROM `tblmaskin`
INNER JOIN tblmaskinhistorik ON tblmaskin.maskinId=tblmaskinhistorik.maskinId
WHERE tblmaskin.maskin='".$_POST['sok']."'
OR tblmaskinhistorik.var='".$_POST['sok']."'
OR tblmaskinhistorik.anvandarnamn='".$_POST['sok']."'

但问题是我只想在历史表中搜索该工具的最后插入行。例如,当您按地点搜索工具时,您只想获取现在就在那里的工具。

有办法做到这一点吗?

SQL Fiddle example .

最佳答案

旁注:看起来您正在使用 PHP,但没有使用准备好的语句,请查看 PDOmysqli避免SQL injection

实际上有一个 article in official MySQL docs关于这个+类似的事情已经解决了herehere .

您需要运行子查询来获取“最新”历史记录的 ID(假设具有最大 ID 的记录是正确的),然后使用该 ID 来获取正确的记录。

注意:我已将您的内联 php 变量替换为 PDO's named placeholders

SELECT tblmaskin.* 
FROM `tblmaskin`
-- Select record from tblmaskinhistorik with the highest id
INNER JOIN (SELECT maskinId, MAX(maskinhistId) AS maxid
FROM tblmaskinhistorik
GROUP BY maskinId) AS t_max
ON t_max.maskinId = tblmaskin.maskinId
-- Joining whole row
INNER JOIN tblmaskinhistorik ON t_max.maxid=tblmaskinhistorik.maskinhistId
WHERE tblmaskin.maskin=:sok
OR tblmaskinhistorik.var=:sok
OR tblmaskinhistorik.anvandarnamn=:sok

对查询运行 EXPLAIN 以确保其高效工作。

关于MYSQL内连接有限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26462966/

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