我会使用此查询:
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 =)
答案 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(),我发现这个方法更有用。