-1

我得到一个错误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]:查询失败:错误:输入第 4 行末尾的语法错误:...(SELECT id FROM main_products WHERE abbreviation = 'banner' ^ in

反正有没有在LEFT JOIN这里做?

4

3 回答 3

2

使用 JOIN 而不是双重 SELECT 的版本:

"SELECT *
FROM main_products_common_dimensions d
JOIN main_products p ON d.product_id = p.id
WHERE p.abbreviation = '$product'"
于 2013-01-21T23:26:26.117 回答
1

根据语法,您应该使用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。有关示例,请参见其他答案。

于 2013-01-21T23:25:19.173 回答
0

你需要关闭你的括号

$common_dimensions_query = "SELECT * FROM main_products_common_dimensions d ".
                           " WHERE abbreviation = '".$product."')";

当然,我强烈建议一般不要使用此查询。您不应该在查询中插入字符串,而是使用准备好的语句。

于 2013-01-21T23:25:02.420 回答