gpt4 book ai didi

php - MySql - 如果另一个表中存在值,则更改返回值

转载 作者:行者123 更新时间:2023-11-30 22:31:05 24 4
gpt4 key购买 nike

我正在使用 selectSellerID 函数来检索用户的 ID。

public function selectSellerID($item_id)
{
if($q = $this->db->mysqli->prepare("SELECT user_id FROM items WHERE id = ?"))
{
$q->bind_param("i", $item_id);
$q->execute();
$q->bind_result($id);
$q->fetch();
$q->close();

return $id;
}
return false;
}

item_id 也可以出现在另一个表中,即转售表。在这种情况下,user_id 将发生变化。下面是转售表。

+----+---------+---------+-------+------+
| id | user_id | item_id | price | date |
+----+---------+---------+-------+------+
| 2 | 18 | 27 | 91 | NULL |
| 3 | 1 | 27 | 90 | NULL |
| 4 | 1 | 27 | 75 | NULL |
+----+---------+---------+-------+------+

所以我需要更改功能以检查转售表中是否存在item_id,然后只获取最新的user_id,因为它可能会转售多次。除了执行第二个查询之外,更改函数的最佳方法是什么?

最佳答案

您可以使用 MySQL JOINS

items 表与 resell 表连接起来,然后对具有最高 id 的结果集进行排序将给出所需的结果。

尝试以下查询:

SELECT IF(r.user_id IS NULL, i.user_id, r.user_id) AS user_id
FROM items i
LEFT JOIN resell r
ON i.id = r.item_id
WHERE i.id = ?
ORDER BY r.id DESC
LIMIT 1

关于php - MySql - 如果另一个表中存在值,则更改返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33891484/

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