gpt4 book ai didi

mysql - 如果存在其他行如何跳过行

转载 作者:行者123 更新时间:2023-11-30 00:41:36 27 4
gpt4 key购买 nike

我试图想出一个简单的 SQL 语句来帮助输出用户需要的内容:

  SELECT 
tbl, bundleID, productID, quantity, cardValue, a.title, orderLineGUID
FROM
(
SELECT 'OLNOVPS' tbl, ol.orderLineGUID, ol.bundleID,
ol.productID, ol.quantity, ol.cardValue, m.title
from orderLinesNoVPS ol
inner JOIN productMeta m ON ol.productID = m.productID
where ol.orderID = 31687478

UNION ALL

SELECT 'OL' tbl, ol.orderLineGUID, ol.bundleID,
ol.productID, ol.quantity, ol.cardValue, m.title
from orderLines ol
inner JOIN productMeta m ON ol.productID = m.productID
where ol.orderID = 31687478
) a
WHERE
a.productID > 100000;

结果是:

enter image description here

我想要完成的只是显示前两行,因为OLNOVPSOL中优先...

换句话说,如果OLNOVPS + orderLineGUID存在,那么OL不应该显示,如果它不存在,应该显示 OL,因为没有 OLNOVPS 先例

任何人都可以帮我...我在这部分上有点卡住了。

最佳答案

这有点难看,但它会起作用......

您可以使用

IF (exists(SELECT 'OLNOVPS' tbl, ol.orderLineGUID, ol.bundleID, 
ol.productID, ol.quantity, ol.cardValue, m.title
from orderLinesNoVPS ol
inner JOIN productMeta m ON ol.productID = m.productID
where ol.orderID = 31687478 ))
BEGIN
SELECT 'OLNOVPS' tbl, ol.orderLineGUID, ol.bundleID,
ol.productID, ol.quantity, ol.cardValue, m.title
from orderLinesNoVPS ol
inner JOIN productMeta m ON ol.productID = m.productID
where ol.orderID = 31687478
END
ELSE
SELECT 'OL' tbl, ol.orderLineGUID, ol.bundleID,
ol.productID, ol.quantity, ol.cardValue, m.title
from orderLines ol
inner JOIN productMeta m ON ol.productID = m.productID
where ol.orderID = 31687478
END

关于mysql - 如果存在其他行如何跳过行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21733619/

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