Mailinglisten-Archive |
Hi, ích hab ein komplexes Problem. Ich bekomme auf ein Query zuviele Datensätze angezeigt (großteils mehrfach), davon dürften einige auch nicht dabei sein. Das Query ist sehr komplex (verwendet z.B. mehrfach IF() und einmal CONCAT()). Wenn ich ein DISTINCT verwende, um wenigstens die doppelten Einträge herauszubekommen, stürzt der MySQLd ab: Plattform: Win98 SE (bisher keine Probleme gehabt) MySQL-Server: 3.21.29a-gamma-debug (win32) MySQL-Client: C:\MYSQL\BIN\MYSQL.EXE Ver 9.13 Distrib 3.21.29a-gamma, for Win95 (i586) Windows-Fehlermeldung: Mysqld Diese Anwendung wird aufgrund eines ungültigen ... blablabla MYSQLD verursachte einen Teilungsfehler in Modul MYSQLD.EXE bei 017f:0048aaa5. Register: ... ... zu den angehängten Dateien: test.dump Dump der Datenbank (mit Dummy-Daten) test.sql Query welches Probleme macht test.out Ausgabe des Querys von test.sql should.out Gewünschte Ausgabe Ich hoffe mir kann jemand helfen. Das Query könnte ich nartürlich auch aufsplitten, allerdings würden dann bei großen Datenbeständen 100-te von Querys laufen müssen, was nicht allzu effizient ist... Bye & Thanks Dante
SELECT DISTINCT IF(knowledge_database_links.typ = 'E', knowledge_database_externe_links.link, CONCAT('knowledge_database.php?aktion=anzeige&id=', knowledge_database.id)) AS link, IF(knowledge_database_links.typ = 'E', knowledge_database_externe_links.beschreibung, knowledge_database.beschreibung) AS beschreibung, IF(knowledge_database_links.typ = 'E', knowledge_database_externe_links.typ_id, knowledge_database.typ_id) AS typ_id, IF(knowledge_database_links.typ = 'E', knowledge_database_externe_links.extern_erreichbar, 'Y') AS extern_erreichbar FROM knowledge_database, knowledge_database_links, knowledge_database_externe_links WHERE knowledge_database_links.obj_id = 1 AND knowledge_database_links.obj_id = knowledge_database.id OR knowledge_database_links.obj_id = knowledge_database_externe_links.id;
link beschreibung typ_id extern_erreichbar knowledge_database.php?aktion=anzeige&id=2 Read-Only Memory 0 Y knowledge_database.php?aktion=anzeige&id=3 Error Correction Code 0 Y http://www.ram.de Homepage des RAMs 9 Y v:\\alle\\tf\\projekte\\Linux-WinNT.ppt Linux und Windows-NT 6 N
link beschreibung typ_id extern_erreichbar knowledge_database.php?aktion=anzeige&id=1 Random Access Memory 8 Y knowledge_database.php?aktion=anzeige&id=2 Read-Only Memory 0 Y knowledge_database.php?aktion=anzeige&id=3 Error Correction Code 0 Y knowledge_database.php?aktion=anzeige&id=4 0 Y knowledge_database.php?aktion=anzeige&id=5 0 Y knowledge_database.php?aktion=anzeige&id=6 0 Y knowledge_database.php?aktion=anzeige&id=1 Random Access Memory 8 Y knowledge_database.php?aktion=anzeige&id=2 Read-Only Memory 0 Y knowledge_database.php?aktion=anzeige&id=3 Error Correction Code 0 Y knowledge_database.php?aktion=anzeige&id=4 0 Y knowledge_database.php?aktion=anzeige&id=5 0 Y knowledge_database.php?aktion=anzeige&id=6 0 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y http://www.ram.de Homepage des RAMs 9 Y knowledge_database.php?aktion=anzeige&id=1 Random Access Memory 8 Y knowledge_database.php?aktion=anzeige&id=1 Random Access Memory 8 Y v:\\alle\\tf\\projekte\\Linux-WinNT.ppt Linux und Windows-NT 6 N v:\\alle\\tf\\projekte\\Linux-WinNT.ppt Linux und Windows-NT 6 N
# MySQL dump 4.0 # # Host: localhost Database: kob #-------------------------------------------------------- # # Table structure for table 'knowledge_database' # CREATE TABLE knowledge_database ( id int(11) DEFAULT '0' NOT NULL auto_increment, begriff varchar(255) DEFAULT '' NOT NULL, datum date DEFAULT '0000-00-00' NOT NULL, beschreibung varchar(255) DEFAULT '' NOT NULL, erklaerung text DEFAULT '' NOT NULL, typ_id int(11) DEFAULT '0' NOT NULL, PRIMARY KEY (id) ); # # Dumping data for table 'knowledge_database' # INSERT INTO knowledge_database VALUES (1,'RAM','0000-00-00','Random Access Memory','Random Access Memory',8); INSERT INTO knowledge_database VALUES (2,'ROM','0000-00-00','Read-Only Memory','Read-Only Memory',0); INSERT INTO knowledge_database VALUES (3,'ECC','0000-00-00','Error Correction Code','Error Correction Code\n\nIst im Gegensatz zu Parity eine Methode um Fehler zu erkennen und zu <u>beseitigen</u>.\nNur das das mal gesagt wurde ;).',0); INSERT INTO knowledge_database VALUES (4,'ABC','0000-00-00','','ABC',0); INSERT INTO knowledge_database VALUES (5,'DEF','0000-00-00','','DEF',0); INSERT INTO knowledge_database VALUES (6,'GHI','0000-00-00','','GHI',0); # # Table structure for table 'knowledge_database_externe_links' # CREATE TABLE knowledge_database_externe_links ( id int(11) DEFAULT '0' NOT NULL auto_increment, link varchar(255) DEFAULT '' NOT NULL, beschreibung text DEFAULT '' NOT NULL, extern_erreichbar enum('Y','N') DEFAULT 'N' NOT NULL, typ_id int(11) DEFAULT '0' NOT NULL, PRIMARY KEY (id) ); # # Dumping data for table 'knowledge_database_externe_links' # INSERT INTO knowledge_database_externe_links VALUES (1,'http://www.ram.de','Homepage des RAMs','Y',9); INSERT INTO knowledge_database_externe_links VALUES (2,'v:\\alle\\tf\\projekte\\Linux-WinNT.ppt','Linux und Windows-NT','N',6); # # Table structure for table 'knowledge_database_links' # CREATE TABLE knowledge_database_links ( obj_id int(11) DEFAULT '0' NOT NULL, link_id int(11) DEFAULT '0' NOT NULL, typ enum('E','I') DEFAULT 'E' NOT NULL, PRIMARY KEY (link_id,obj_id,typ) ); # # Dumping data for table 'knowledge_database_links' # INSERT INTO knowledge_database_links VALUES (1,3,'I'); INSERT INTO knowledge_database_links VALUES (1,2,'I'); INSERT INTO knowledge_database_links VALUES (1,1,'E'); INSERT INTO knowledge_database_links VALUES (1,2,'E'); # # Table structure for table 'knowledge_database_typen' # CREATE TABLE knowledge_database_typen ( id int(11) DEFAULT '0' NOT NULL auto_increment, typ varchar(10) DEFAULT '' NOT NULL, icon varchar(50) DEFAULT '' NOT NULL, PRIMARY KEY (id) ); # # Dumping data for table 'knowledge_database_typen' # INSERT INTO knowledge_database_typen VALUES (1,'Ordner/Ver','ordner'); INSERT INTO knowledge_database_typen VALUES (2,'Text-Datei','text'); INSERT INTO knowledge_database_typen VALUES (3,'Word-Dokum','word'); INSERT INTO knowledge_database_typen VALUES (4,'Excel-Tabe','excel'); INSERT INTO knowledge_database_typen VALUES (5,'Access-Dat','access'); INSERT INTO knowledge_database_typen VALUES (6,'PowerPoint','powerpoint'); INSERT INTO knowledge_database_typen VALUES (7,'Netzwerk','netzwerk'); INSERT INTO knowledge_database_typen VALUES (8,'PC-Kompone','pc'); INSERT INTO knowledge_database_typen VALUES (9,'Web-Seite','www');
php::bar PHP Wiki - Listenarchive