我得到一个错误与这个SUBSELECT
?
$common_dimensions_query = "
SELECT *
FROM main_products_common_dimensions d
WHERE d.product_id = (SELECT id FROM main_products WHERE abbreviation = '".$product."'";
错误:
警告:pg_query() [function。pg-query]: Query failed: ERROR: syntax ERROR at end of input LINE 4:…(SELECT id FROM main_products WHERE缩写= 'banner' ^ in
有没有办法在这里做一个LEFT JOIN
代替?
使用JOIN代替double SELECT的版本:
"SELECT *
FROM main_products_common_dimensions d
JOIN main_products p ON d.product_id = p.id
WHERE p.abbreviation = '$product'"
根据语法,您应该使用IN
而不是=
。正确的语法应该是
$common_dimensions_query = "SELECT * FROM main_products_common_dimensions d WHERE d.product_id IN (SELECT id FROM main_products WHERE abbreviation = '".$product."');";
是的,您可以使用JOIN来代替。
你需要关闭括号
$common_dimensions_query = "SELECT * FROM main_products_common_dimensions d ".
" WHERE abbreviation = '".$product."')";
当然,我强烈建议一般不要使用这个查询。你不应该在查询中插入字符串,而应该使用预处理语句。