Archivlink: javarea.de Forum > PHP, MySQL & CGI > Sortieren von Mysql Joins
Vollständigen Link anzeigen: javarea.de Forum > PHP, MySQL & CGI > Sortieren von Mysql Joins
Pages: [1]
| geschrieben von mosi am 02.09.2008 - 18:56 |
Moin Moin,
bevor ihr mich erschlagt: das Sortieren an sich ist weniger das Problem. Ich habe einen left outer join, der bereits eine Sortierung enthält:
GROUP BY tree.lft HAVING layer = 1 ORDER BY name ASC, ts DESC
Neben der "normalen" Sortierung sollen allerdings alle Tupel, die beim joinen keine Werte der zweiten (quasi der rechten) Tabelle abbekommen haben zuerst ausgegeben werden (mit der entsprechenden order by sortierung). Danach sollen die Tupel kommen, die entsprechende Daten in der rechten Relation hatten. |
| geschrieben von Klaush am 03.09.2008 - 07:11 |
| Wie sieht denn deine WHERE Klause oder besser noch das gesamte Statement aus, denn dort wird "bestimmt" welche Datensätze geladen werden? Die Sortierung ist dann nur noch Formsache. |
| geschrieben von mosi am 03.09.2008 - 17:20 |
gut, ich hatte gehofft, das nicht posten zu müssen ^^
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
<?
$dbResrc = $db->query("SELECT (COUNT(tree.id) - target.layer)AS layer,
tree.id, name, ts, mime, options
FROM mydump___fs_structure AS tree RIGHT OUTER JOIN mydump___f_mime
ON tree.id = mydump___f_mime.id,
mydump___fs_structure AS partree,
mydump___fs_structure AS subtree,
(SELECT COUNT(node.id) -1 AS layer, node.id AS id
FROM mydump___fs_structure AS node, mydump___fs_structure AS parent
WHERE node.lft BETWEEN parent.lft AND parent.rgt
AND node.id = ".$this->pid."
GROUP BY node.lft ORDER BY node.lft ASC) AS target,
mydump___f_properties AS properties,
mydump___f_description AS description
WHERE (tree.lft > partree.lft AND tree.rgt < partree.rgt)
AND (tree.lft > subtree.lft AND tree.rgt < subtree.rgt)
AND subtree.id = target.id
AND tree.id = properties.id
AND tree.id = description.id
GROUP BY tree.lft, mime HAVING layer = 1
ORDER BY name ASC, ts DESC");
?>
|
|
|