php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.07.2011, 22:07  
Neuer Benutzer
 
Registriert seit: 28.07.2011
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
tromton befindet sich auf einem aufstrebenden Ast
Standard

die einzige Möglichkeit die ich bisher gefunden hab ist diese:
Code:
SELECT  
`addressbook` . * ,  `addressbook_info_email`.`id_type` AS  `email_id_type` ,  
`addressbook_info_email`.`value` AS  `email_value` ,  
`addressbook_info_telephone`.`id_type` AS  `telephone_id_type` ,  
`addressbook_info_telephone`.`id_ccode` AS  `telephone_id_ccode` ,  
`addressbook_info_telephone`.`value` AS `telephone_value` 
FROM  `addressbook` 
LEFT JOIN  `addressbook_info_email` ON  
		`addressbook_info_email`.`id` = 
		(
			SELECT `addressbook_info_email`.`id` FROM `addressbook_info_email` WHERE `addressbook`.`id` =  `addressbook_info_email`.`id_addressbook` ORDER BY `addressbook_info_email`.`rank` ASC LIMIT 0,1
		)
LEFT JOIN  `addressbook_info_telephone` ON  
		`addressbook_info_telephone`.`id` = 
		(
			SELECT `addressbook_info_telephone`.`id` FROM `addressbook_info_telephone` WHERE `addressbook`.`id` =  `addressbook_info_telephone`.`id_addressbook` ORDER BY `addressbook_info_telephone`.`rank` ASC LIMIT 0,1
		)
WHERE 1 
ORDER BY  `addressbook`.`name1` ASC ,  `addressbook`.`name2` ASC
LIMIT 0 , 200
leider dauert die abfrage etwa 1,5 Sekunden (woher 0,07 Sekunden).
vielleicht hat jemand einen tipp wie man das eleganter lösen kann?

explain liefert folgende Tabelle:


vielen dank,

tromton
Miniaturansicht angehängter Grafiken
sql-abfrage-optimieren-screen-shot-2011-07-29-22.06.31.jpg  
tromton ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.08.2011, 20:42  
Neuer Benutzer
 
Registriert seit: 28.07.2011
Beiträge: 14
PHP-Kenntnisse:
Fortgeschritten
tromton befindet sich auf einem aufstrebenden Ast
Standard

ich hab mittlerweile eine andere interne Lösung gefunden. da ich ja nach dem Eintrag mit einem niederringen rank (niedrigster rank ist 1 und immer vorhanden) suche, habe ich condition des left joins entsprechend erweitert:
Code:
SELECT  `addressbook` . * ,  `addressbook_info_email`.`id_type` AS  `email_id_type` ,  `addressbook_info_email`.`value` AS  `email_value` ,  `addressbook_info_telephone`.`id_type` AS  `telephone_id_type` ,  `addressbook_info_telephone`.`id_ccode` AS  `telephone_id_ccode` , `addressbook_info_telephone`.`value` AS  `telephone_value` 
FROM  `addressbook` 
LEFT JOIN  `addressbook_info_email` ON  `addressbook`.`id` =  `addressbook_info_email`.`id_addressbook` 
AND  `addressbook_info_email`.`rank` <  '2'
LEFT JOIN  `addressbook_info_telephone` ON  `addressbook`.`id` =  `addressbook_info_telephone`.`id_addressbook` 
AND  `addressbook_info_email`.`rank` <  '2'
WHERE 1 
GROUP BY  `addressbook`.`id` 
ORDER BY  `addressbook`.`name1` ASC ,  `addressbook`.`name2` ASC 
LIMIT 0 , 200
Das eigentlich problem, wie man die sortierung der gejointen Daten löst wurde damit zwar nicht behoben, für meinen fall reicht es aber.

danke

tromton
tromton ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
sql abfrage unterschied where, join kaptainIglo Datenbanken 8 15.06.2011 13:09
[Erledigt] SQL Abfrage escapen wooha PHP Einsteiger 3 18.04.2011 10:13
[Erledigt] Verdraxte Abfrage von 2 SQL Tabellen EmmKey PHP Einsteiger 7 15.03.2011 12:21
[Erledigt] SQL zweistufige Abfrage Elefterios Datenbanken 12 13.03.2011 15:23
SQL Abfrage INNER JOIN etc. chr1s-eg Datenbanken 4 01.03.2011 13:37
SQL Abfrage - Summieren mehrerer Werte eines Datensatzes themk# Datenbanken 7 15.02.2011 16:42
SQL Abfrage über PHP cURE Datenbanken 3 09.02.2011 12:55
Array aus SQL Abfrage zusammenbauen um es rekursiv abzuarbeiten litterauspirna PHP Einsteiger 7 01.02.2011 18:44
Werte mehrerer Checkboxen für SQL Abfrage übernehmen? krais PHP Einsteiger 4 14.01.2011 21:24
Umlaute (ä) in der SQL Abfrage noop Datenbanken 5 09.01.2011 23:06
[Erledigt] Mehr als eine SQL Abfrage hintereinander. Seebär PHP Einsteiger 5 29.12.2010 15:44
erweitere sql abfrage Helix PHP Einsteiger 5 27.12.2010 04:11
False Abfrage und SQL hängt sich auf marc77 Datenbanken 4 22.11.2010 14:57
Wie geht diese SQL Abfrage? marc77 Datenbanken 5 13.11.2010 12:50
[Erledigt] sql abfrage mit Tabelle in der $ Zeichn vorkommt dior Datenbanken 5 09.11.2010 13:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
asc limit 0,1\, order by id asc limit 1 optimieren, asc limit 0,1, sql abfrage über mehrer seiten rank

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum