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','=');

但我没有得到任何结果:/问题是这两行:

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

如果我评论这两行,我有一个结果(但没有 WHERE 子句)。我应该怎么做才能正确使用 WHERE 子句?

谢谢=)

4

2 回答 2

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 回答
0

你可以使用 db_query(),我发现这个方法更有用。

于 2013-04-02T17:45:11.663 回答