我有两个表,我想比较这两个表中的两列。表f_product中的列重排必须大于并等于表f_line中的列lreflow。我使用的编码是
SELECT f_product.oiv,f_product.product,f_product.passive,f_product.pitch,f_product.reflow,f_line.lreflow,f_product.spi,f_product.scomp,f_product.pallet,f_product.printer,f_line.line
FROM f_product,f_line
WHERE f_product.passive=f_line.passive
AND f_product.pitch=f_line.pitch
AND f_product.spi=f_line.spi
AND f_product.pallet=f_line.pallet
AND f_product.printer=f_line.printer
AND f_product.reflow >= f_line.lreflow
AND oiv='PMLE4720A' .
但是,结果显示不会比较f_product.reflow和f_line.lreflow之间的列数据。例如,结果仍然列出reflow = 8和lreflow = 10的结果,其中reflow小于lreflow的值。 这是我的sql编码有任何错误吗?
答案 0 :(得分:0)
我猜这是Oracle?有时它会被real where子句和使用where的隐式连接之间的模糊性混淆。我会把它重新改成ansi sql join:
SELECT
.....
FROM
f_product a INNER JOIN f_line b ON
(a.passive = b.passive AND
a.pitch =b.pitch AND
a.spi=b.spi AND
a.pallet=b.pallet)
where oiv='PMLE4720A'
and a.reflow >= b.lreflow
假设产品和生产线之间的关系对于这四个领域的jion是有意义的......