1

私はこのクエリを使用します:

SELECT g.id_site, g.commune, g.latitude, g.longitude, g.altitude, g.date, g.id_fiche, a.essence, e.nom_espece, e.effectif 
FROM general g, arbre a, espece e
WHERE g.nom = a.nom AND g.id_fiche = e.id_fiche AND g.id_fiche = a.id_fiche

drupal 7 API を使用します。私はこれを試します:

        $query = db_select('general' ,'g');
        $query -> join ('arbre','a','a.nom = g.nom');
        $query -> join ('espece','e','e.nom = a.nom');
        $query -> fields ('g', array('commune','latitude','longitude','altitude','date','id_fiche'));
        $query -> fields ('a', array('essence'));
        $query -> condition ('g.id_fiche','e.id_fiche','=');
        $query -> condition ('g.id_fiche','a.id_fiche','=');

しかし、結果が得られません:/問題は次の2行です:

        $query -> condition ('g.id_fiche','e.id_fiche','=');
        $query -> condition ('g.id_fiche','a.id_fiche','=');

この 2 行にコメントを付けると、結果が得られます (ただし、WHERE 句はありません)。WHERE 句を適切に使用するにはどうすればよいですか?

thx =)

4

2 に答える 2

0

db_query() を使用できます。この方法の方が使いやすいことがわかりました。

于 2013-04-02T17:45:11.663 に答える
0

クエリの問題を無視して、答えだけに焦点を当てる:

試してみてください: 実際に使用するすべてのフィールドを定義するだけでよいと思います。それでもうまくいかない場合は、Where句を使用してみてください

$query = db_select('general' ,'g');
$query -> join ('arbre','a','a.nom = g.nom');
$query -> join ('espece','e','e.nom = a.nom');
$query -> fields ('e', array('id_fiche','nom'));
$query -> fields ('g', array('commune','latitude','longitude','altitude','date','id_fiche','nom'));
$query -> fields ('a', array('essence','nom'));
$query -> condition ('g.id_fiche','e.id_fiche','=');
$query -> condition ('g.id_fiche','a.id_fiche','=');
于 2013-04-02T10:32:39.723 に答える