1

このクエリを実行しようとしていますが、実行されません

SELECT ng.parent_id, ng.tab, ng.post_id, ng.ORDER, ng.cluster_key, pd.id, pd.slug, pd.link_text, pd.parent
FROM `ecom_navigation` AS ng, `ecom_page_data` AS pd
WHERE ng.cluster_key = 'primary'
AND ng.tab = '0'
AND ng.parent_id = '1'pd.id = ng.post_id
ORDER BY ng.order

そしてエラーが発生する

SQL 構文にエラーがあります。1行目の「pd.id = ng.post_id ORDER BY ng.order」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

`ng.order` と `ng`.`order` を試してみましたが、まだ実行できないようです。

どんな助けでも大歓迎です

4

3 に答える 3

2

私はあなたがちょうど欠けていると思いますand:

AND ng.parent_id = '1'pd.id = ng.post_id

おそらく次のようになります。

AND ng.parent_id = '1'
AND pd.id = ng.post_id

または、結合条件を結合に入れます(実際に文字列でない限り、数値を引用しないでください):

SELECT ng.parent_id, ng.tab, ng.post_id, ng.ORDER, ng.cluster_key, pd.id, pd.slug, pd.link_text, pd.parent
FROM `ecom_navigation` AS ng join `ecom_page_data` AS pd on ng.post_id = pd.id
WHERE ng.cluster_key = 'primary'
AND ng.tab = 0        -- Leave the quotes on if tab is a string
AND ng.parent_id = 1  -- Leave the quotes on if parent_id is a string
ORDER BY ng.order
于 2011-10-17T04:07:28.467 に答える
1

試す

ng.order

このエディターに表示するバックティックを取得できれば、そこに表示されますが、削除されているようです

バッククォートは、列名などの予約語やスペースをエスケープするために使用されます

于 2011-10-17T04:07:13.670 に答える
0

クエリを (you have a 'misplaced)に変更します

SELECT ng.parent_id, ng.tab, ng.post_id, ng.ORDER, ng.cluster_key, pd.id, pd.slug, pd.link_text, pd.parent
FROM `ecom_navigation` AS ng, `ecom_page_data` AS pd
WHERE ng.cluster_key = 'primary'
AND ng.tab = '0'
AND ng.parent_id =  '1' AND pd.id = ng.post_id
ORDER BY ng.order

また

SELECT ng.parent_id, ng.tab, ng.post_id, ng.ORDER, ng.cluster_key, pd.id, pd.slug, pd.link_text, pd.parent
FROM `ecom_navigation` AS ng, `ecom_page_data` AS pd
WHERE ng.cluster_key = 'primary'
AND ng.tab = '0'
AND ng.parent_id =  1 AND pd.id = ng.post_id
ORDER BY ng.order
于 2011-10-17T04:08:22.760 に答える