Drupal 7,用WHERE和AND查询

时间:2013-04-01 22:23:47

标签: drupal-7

我会使用此查询:

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子句?

thx =)

2 个答案:

答案 0 :(得分: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','=');

答案 1 :(得分:0)

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