gpt4 book ai didi

mysql - 我在 mysql select 查询上缺少什么?

转载 作者:行者123 更新时间:2023-11-29 06:15:54 25 4
gpt4 key购买 nike

我在做什么是检查 signatoryid来自用户输入的表中的最低级别 status = 1并按 tracknum 分组

因此,如果用户的输入不是该 tracknum 上的最低级别,它将不会给出输出。但如果它具有最低级别。它将给出输出

到目前为止,这是我的查询,适用于 signatoryid - LHPL004

但不适用于其他签名者 ID,例如 LHPL003等等。那么mysql代码缺少什么?谢谢

   SELECT `tracknum`, `signatoryid`, `signatorylevel`, `status`
from tble_transaction
where `status` = "1" and signatoryid = "LHPL004" and `signatorylevel` = (select MIN(`signatorylevel`) from tble_transaction where `status`="1" )

enter image description here

这是我使用 LHPL003 作为签名 ID 时的预期输出

enter image description here

它没有打印出带有 signatoryID 的 tracknum DOC009 的那个,因为 LHPL003 的级别是 3,而在那个 tracknum DOC009 上有一个级别较低的人,其状态仍然是 1 而不是 0

最佳答案


可能您希望每个 tracknum 的相应行具有 minimum signatorylevelstatus=1

此假设基于您的评论:

what i want to do sir is show only the ones with the lowest level on each tracknum which status = 1.



以下查询可能就足够了:

SELECT 
tble_transaction.*
FROM tble_transaction
INNER JOIN
(
SELECT
tracknum,
MIN(signatorylevel) min_signatorylevel
FROM tble_transaction
WHERE `status` = "1"
GROUP BY tracknum
) AS t
ON tble_transaction.tracknum = t.tracknum AND
tble_transaction.signatorylevel = t.min_signatorylevel;


输出:

tracknum    signatoryid   datesigned    datereceived     signed   status    signatorylevel
DOC009 LHPL004 0/0/0000 0/0/0000 Released 1 2
DOC010 LHPL003 0/0/0000 0/0/0000 Released 1 3


Demo Here



注意:

看,在您的示例数据中,尽管 tracknum DOC009DOC010 的最小 signatorylevel 都是 1,但它们有 status = 0。所以它们不会出现在结果中。



关于mysql - 我在 mysql select 查询上缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978876/

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