-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

double SELECTの代わりにJOINを使用するバージョン:

"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 に答える