Ich möchte den Wert von "vid" erhalten, indem ich die Knoten-ID kenne, und den Wert von "name" für die Zeilen erhalten, in denen "vid" gleich 2 ist.
Wenn es eine einfache Abfrage wäre, würde ich nicht wissen, wie ich sie schreiben soll; Ich weiß nicht, wie ich eine Left Join-Abfrage schreiben soll.
Die "einfache" SQL-Abfrage in Drupal lautet wie folgt:
$result = db_query('SELECT tid FROM {taxonomy_index} WHERE nid = :nid', array(':nid'=>$nid));
Die entsprechende SQL-Rohabfrage lautet wie folgt:
SELECT did, name FROM taxonomy_index as ti LEFT JOIN taxonomy_term_data AS ttd ON ti.tid = ttd.tid WHERE vid = 2 and nid = $nid
array(':vid' => variable_get('yourmodule_vocabulary', 2))
. Dann wäre es standardmäßig 2, aber Sie könnten es in settings.php überschreiben oder ein Formular für die Administratoreinstellungen dafür erstellen.vid=2 to vid=:vid then array(':vid' => 2)
um Ihren Code auf allen Datenbankservern kompatibel zu halten. Der Drupal-Kern folgt demselben Muster.quelle
$terms = db_select(...)->fields(...); $terms->leftJoin(...); $terms->condition(...)->...
quelle
// Vergiss nicht die Funktion "fetchAll ()":
quelle