我需要构建一个查询来比较我的表中的两个值对之一,我的表结构看起来像这样:
product_id | psi_a | gpm_a | psi_b | gpm_b |
-------------------------------------------------------------
PRODUCT_123 | 1000 | 400 | 8000 | 300 |
-------------------------------------------------------------
PRODUCT_456 | 2804 | 3006 | 5800 | 579 |
当我的psi_a
andgpm_a
是一个值对时psi_b
,gpm_b
我目前必须运行两个 SQL 查询来获取正确呈现我的站点页面所需的值,但这会导致两组结果被附加到页面上。
标记
$flowQ = $function->flow_query( $pType, $pVal, $gVal, $class_style, $cVal, $pageCat );
$highQ = $function->high_query( $pType, $pVal, $gVal, $class_style, $cVal, $pageCat );
if(empty($flowQ)===false){
$function->generate_view( $flowQ, $pType, $pVal, $gVal, $class_style, $cVal, $pageCat );
}
目前这些函数构建的SQL如下:
流查询();
$query = $this->db->prepare( "SELECT * FROM `pumps` WHERE `pump_type` = ? AND `psi_a` >= ? AND gpm_a >= ? AND `pump_category` = ? ORDER BY pump_type DESC" );
$query->bindValue(1, $pType);
$query->bindValue(2, $pVal);
$query->bindValue(3, $gVal);
$query->bindValue(4, $cVal);
第二个查询几乎相同,但它使用psi_a
andgpm_a
作为值参数。有什么方法可以组合这些查询以返回将引用psi_a
and的单个结果集,gpm_a
如果没有返回结果,那么它引用psi_b
and gpm_b
?
我对 SQL 比较陌生,所以如果这不可能,那么我将寻求替代解决方案。