gpt4 book ai didi

php - MySQL 将两个查询组合成 JSON 对象

转载 作者:行者123 更新时间:2023-11-29 13:10:49 25 4
gpt4 key购买 nike

考虑这两个查询:

$sql = "select rq1.itemNo, rq1.bid, rq1.bidDate 
from encan rq1
left outer join encan rq2
on(rq1.itemNo = rq2.itemNo and rq1.bid < rq2.bid)
where rq2.itemNo is null
order by itemNo";

$sql2 = "SELECT itemNo, count(*) as totalBid
FROM encan
GROUP BY itemNo
ORDER BY itemNo ASC;";

第一个查询给出了 itemNo 和 bidDate 的最高出价。这是 JSON 结果:

[{"itemNo":"Item #1","bid":"140","bidDate":"2014-03-01"},{"itemNo":"Item #2","bid":"110","bidDate":"2014-01-26"},{"itemNo":"Item #3","bid":"70","bidDate":"2014-01-24"},{"itemNo":"Item #7","bid":"30","bidDate":"2014-01-30"},{"itemNo":"Item #8","bid":"40","bidDate":"2014-01-28"}]

第二个给出了每个项目的出价总数。这是它的结果:

[{"itemNo":"Item #1","totalBid":4},{"itemNo":"Item #2","totalBid":3},{"itemNo":"Item #3","totalBid":3},{"itemNo":"Item #7","totalBid":2},{"itemNo":"Item #8","totalBid":2}]

我希望将出价总数包含在第一个查询中,这样我就不会尝试将两个不同的结果传输到 AJAX。我正在使用返回的结果将数据更新到我的 HTML 中。

我设法弄清楚如何获取第一个查询的结果并通过 AJAX/jQuery 操作它并更新我的 HTML。我不认为进行第二次 AJAX 调用来获取第二个结果是正确的方法。将两个查询结果返回一个 JSON 对象将大大简化前端编码。

任何帮助将不胜感激。谢谢。

最佳答案

我认为你可以合并查询:

SELECT 
rq1.itemNo
, rq1.bid
, rq1.bidDate
, (
SELECT COUNT(*)
FROM encan rq3
WHERE rq1.itemNo = rq3.itemNo
GROUP BY rq3.itemNo
) AS totalBid
FROM encan rq1
LEFT OUTER JOIN encan rq2 ON (
rq1.itemNo = rq2.itemNo
AND rq1.bid < rq2.bid
)
WHERE rq2.itemNo IS NULL
ORDER BY rq1.itemNo

如果您希望出价计数成为物理上独立的结构,请按照 CBroe 的建议进行操作,并将两个查询的结果放入相同的 arrayjson_encode 中() 改为数组

关于php - MySQL 将两个查询组合成 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22122971/

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