Blog Tags
Blog Archiv
- April, 2010 (1)
- Dezember, 2009 (2)
- November, 2009 (4)
Drupal Modulentwicklung - SQL Unterabfrage
Es kann eforderlich sein in einem DB Query mit Unterabfragen, Subqueries, zu arbeiten.
Problem dabei ist die korrekte Handhabung damit in der Unterabfrage Werte aus der sie umgebenden Abfrage zur Verfügung stehen.
Abfrage ohne Subquery
$query = db_query(db_rewrite_sql("SELECT DISTINCT n.nid FROM {node} WHERE n.type = 'blog' AND n.status = 1 AND n.uid <> 0"));
Abfrage mit Subquery
$query = db_query(db_rewrite_sql("SELECT DISTINCT @uid:=n.uid, n.nid FROM, (SELECT b.created FROM {node} b WHERE b.type = 'blog' AND b.uid = @uid ORDER BY b.created ASC LIMIT 1) AS oldest {node} WHERE n.type = 'blog' AND n.status = 1 AND n.uid <> 0"));
Der Sinn der Abfrage ist hier nicht die Frage. Mit einem Join könnte man den Query im Falle des Beispielcode ebenso realisieren.
Es geht wie gesagt um die Query-Syntax bezüglich eines Subquery.
Problem mit Pager-Query
Problem bei derartigen Subqueries ist das man damit Drupals Pager-Queries realisieren muss. Das bedeutet, dieser Query
$query = pager_query(db_rewrite_sql("SELECT DISTINCT @uid:=n.uid, n.nid FROM, (SELECT b.created FROM {node} b WHERE b.type = 'blog' AND b.uid = @uid ORDER BY b.created ASC LIMIT 1) AS oldest {node} WHERE n.type = 'blog' AND n.status = 1 AND n.uid <> 0". tablesort_sql($header)), $rows);
wird zwar keinen Fehler produzieren aber es wird zunächst kein Pager angezeigt.
Ursache dabei ist die Variable $pager_total in der Datei pager.inc. Sie ist leer bzw. der 1. Wert im Array ist 0.
Wer das Problem mit dem Pager lösen will sollte sich die Datei statistics.admin.inc ansehen.
Kommentare
cheap ghd hair straighteners
Rosetta Stone Spanish,
Rosetta Stone Language,
Rosetta Stone,
cheap ghd straighteners,
cheap ghd hair straighteners,
ghd cheap,
ghd straighteners,
ghd hair,
ghd uk,
ghd lisseur,
Gucci Wallets Gucci
Gucci Wallets
Gucci Belts
Gucci Jewelry
Gucci Hats
Gucci Bikini
gucci clothing
gucci shoes
gucci sneakers
gucci handbags
gucci sunglasses
ghd
experimental true religion shorts research is now being conducted regarding the feasibility of computer games as ed hardy clothing a test for drunken driving. This is because the intoxicants tend to slow reaction and impair ghd straighteners coordination. Computer games are not restricted to mere “twitch” games