0

drupalの汎用モジュールでこのSQLクエリを実行しようとすると、結果を取得できませんが、MySQLでこれを実行しようとすると、結果を表示できます。私のコードは次のようになります:

 function _get_subject_sub_category() {

  $options = array();
  $sql = "SELECT father.Subject_Code, child.Subject_Category 
FROM {subjects} as child 
INNER JOIN {subjects} as father ON (child.Parent_Category = father.Subject_Code
AND child.Level =2 )";

  $result = db_query($sql);
  foreach ($result as $row) {


     $options[$row->father.Subject_Code] = $row->child.Subject_Category;

  }
  return $options;
  }

私が遭遇したエラーは、$ options [$ row-> Father.Subject_Code] = $ row->child.Subject_Category;`の行にあります。

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

4

2 に答える 2

1

この行を変更してみてください:

$options[$row->father.Subject_Code] = $row->child.Subject_Category;

これに:

$options[$row->Subject_Code] = $row->Subject_Category;

テーブルの名前は結果に含まれていません。混乱を避ける必要がある場合は、SQLクエリでエイリアスを使用できます。

于 2013-01-18T08:22:59.987 に答える
1

私はdrupalを知らず、phpを使用しませんが、私は言うでしょう:

father.で削除 $row->father.Subject_Code

child.$row->child.Subject_Category

父と子は単なるdbエイリアスであるため。

于 2013-01-18T08:23:03.690 に答える