2013-04-01 40 views
1

我會用這個查詢的查詢:的Drupal 7,用WHERE和AND

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

忽略的查詢問題,只關注了答案:

試試這個: 我想你只需要確定你確實要使用的字段。 如果仍然不行嘗試使用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','='); 
+0

對不起,我忘了給更多的信息.​​. 我的查詢結果我想要的是: commune1 latitude1 longitude1 altitude1日期1 id_fiche1 essence1 nom_espece1 effectif1 commune1 latitude1 longitude1 altitude1日期1 id_fiche1 essence1 nom_espece2 effectif2 ... commune1 latitude1 longitude1 altitude1 date1 id_fiche1 essence1 nom_especeN effectifN commune2 latitude2 longitude2 altitude2 date2 id_fiche2 essence2 nom_espece1 effectif1 ... – user2137454

+0

有關添加更多字段,請參閱文檔的字段部分:http://drupal.org/node/1848352 – Andre

0

您可以使用db_query(),我發現這個方法更加實用。