Sql Informix:查询合并
我有两个问题:Sql Informix:查询合并,sql,informix,Sql,Informix,我有两个问题: select COUNT(o.id_offer) from offers o, product p where p.id_product = "+ productID +" and o.id_offer = "+ offerID +" and (b.type = 0 or o.type = "A") 此查询返回某些产品的计数 select p.id_product, p.name, s.id_supplier, s.name from product p, suppliers
select COUNT(o.id_offer) from offers o, product p where
p.id_product = "+ productID +" and o.id_offer = "+ offerID +" and (b.type = 0 or o.type = "A")
此查询返回某些产品的计数
select p.id_product, p.name, s.id_supplier, s.name from product p, suppliers s where p.id_supplier = s.id_supplier
此查询返回所有产品数据
我想将这两个查询合并为一个查询,如下所示:
select (select COUNT(o.id_offer) from offers o, product p where
p.id_product = p.id_product and o.id_offer = 13345 and (b.type = 0 or o.type = "A")) count,p.id_product, p.name, s.id_supplier, s.name from product p, suppliers s where p.id_supplier = s.id_supplier
有人知道如何在informix中做到这一点吗?请使用显式连接表示法,而不是FROM子句表示法中的表名逗号列表 第一个查询需要泛化以生成产品ID和匹配计数
SELECT p.id_product, COUNT(o.id_offer) AS offer_count
FROM offers o
JOIN product p ON p.id_product = o.id_product -- Guessed column
WHERE (p.type = 0 OR o.type = 'A')
GROUP BY p.id_product
第二个查询可以转换为:
SELECT p.id_product, p.name, s.id_supplier, s.name
FROM product p
JOIN suppliers s ON p.id_supplier = s.id_supplier
这两个查询也可以与联接结合使用:
SELECT x.id_product, x.product_name, x.id_supplier, x.supplier_name, y.offer_count
FROM (SELECT p.id_product, p.name, s.id_supplier, s.name
FROM product p
JOIN suppliers s ON p.id_supplier = s.id_supplier
) AS x
JOIN (SELECT p.id_product, COUNT(o.id_offer) AS offer_count
FROM offers o
JOIN product p ON p.id_product = o.id_product -- Guessed column
WHERE (p.type = 0 OR o.type = 'A')
GROUP BY p.id_product
) AS y
ON x.id_product = y.id_product
如果是关于Informix的,为什么要标记这个
mysql
?对不起,谢谢你的修复。出于某种原因,这是一个常见的错误。您能解释一下为什么要这样做吗?您应该完成SQL与它准备的字符串的分离。你还需要仔细阅读。在第一个查询中,b.type
指的是什么还不清楚。为表提供模式会很有帮助,或者至少有一个带有显著列的大纲模式。