我需要将2个查询合并为一个。两者都查询相同的表和相同的列名。我需要在一个查询中的结果,以便我可以重复区域结果。我已经尝试过UNION,但这并没有正确运行下半场。查询1如下:
SELECT o.value AS sdate
FROM order_option o
INNER JOIN order_product p ON o.order_product_id = p.order_product_id
WHERE
p.product_id = '$_GET[u]'
AND o.name = 'Start Date'
查询2如下......
SELECT o2.value AS sday
FROM order_option o2
INNER JOIN order_product p ON o2.order_product_id = p.order_product_id
WHERE
p.product_id = '$_GET[u]'
AND o2.name = 'Number of Days'
答案 0 :(得分:1)
UNION应该是正确的。第二个查询是否如图所示正确运行?如果是这样,它应该在UNION中以相同的方式运行。您可以尝试UNION ALL并查看是否“更正”了查询。
答案 1 :(得分:0)
您可以像这样使用MAX和CASE的组合
SELECT
MAX(CASE WHEN o.name = 'Start Date' THEN o.value END) AS sdate,
MAX(CASE WHEN o.name = 'Number of Days' THEN o.value END) AS sday
FROM order_option o
INNER JOIN order_product p USING (order_product_id)
WHERE
p.product_id = '$_GET[u]'
;