php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.05.2008, 18:31  
Kevz
Gast
 
Beiträge: n/a
Standard [Erledigt] MySQL Subquery Abfrage

Greetz zusammen,
und zwar habe ich folgendes denk Problem:

Ich habe zwei Tabellen. Die Tabelle B (*_themes) beinhaltet die Titel, die Tabelle A (*_parts) beinhaltet die Titel ID sowie sonstige Eigenschaften. (Name, Datei & co.)

Das ganze läuft via InnoDB, im zusammenhang Foreign-Key. Soweit gut. Jetzt möchte ich aber einen zufälligen Datensatz aus der Tabelle B und diese ID mit den Datensätzen aus der Tabelle A lesen. (so das nur die zugeordneten Datensätze ausgegeben werden)

Soweit - kein Problem. Das auslesen der ersten Datensätze(!). Per Zufall, aber ja....

...hat jemand eine Idee, wie der ganze Spaß wohl Funktionieren könnte? Natürlich über Subquery.



Code:
Code:
SELECT
       `lp`.`name`
      ,`lp`.`filename`
      ,`lp`.`theme_id`
FROM
      `labyrinth_parts` `lp`
WHERE
      `lp`.`theme_id` = (SELECT
                                `lt`.`id`
                         FROM
                                `labyrinth_themes` `lt`
                         LIMIT 1
                        )
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.05.2008, 18:41  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Code:
SELECT
 `lt`.`id`
FROM
 `labyrinth_themes` `lt`
ORDER BY
 rand()
LIMIT
 1
David ist offline   Mit Zitat antworten
Alt 08.05.2008, 18:47  
Kevz
Gast
 
Beiträge: n/a
Standard

Habe ich ebenfalls ausprobiert.

Er zeigt darauf hin nur EINEN Datensatz an, wenn es mehrere sind. Wobei ich aber dann die anderen ebenfalls ausgegeben haben möchte, die dazu gehören.

Geändert von Kevz (08.05.2008 um 18:50 Uhr).
  Mit Zitat antworten
Alt 08.05.2008, 20:00  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Oh, stimmt. Würde ich mit zwei Abfragen machen.
David ist offline   Mit Zitat antworten
Alt 08.05.2008, 20:05  
Kevz
Gast
 
Beiträge: n/a
Standard

Und genau das mag ich meiden, jetzt habe ich es ja schon soweit bekommen. Es ist gewiss möglich - denke ich. Nur der Rätsels Lösung, ist nicht wirklich findbar. :P
  Mit Zitat antworten
Alt 09.05.2008, 08:26  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Irgenwie verstehe ich dein Problem nicht. Deine Abfrage, ergänzt mit dem ORDER BY rand() macht doch genau das.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 09.05.2008, 09:30  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Zitat von Kevz Beitrag anzeigen
Und genau das mag ich meiden, jetzt habe ich es ja schon soweit bekommen. Es ist gewiss möglich - denke ich. Nur der Rätsels Lösung, ist nicht wirklich findbar. :P
Die Frage ist auch, ob es sich lohnt.
google "mysql order by rand" -> ~jk ORDER BY RAND()

Zitat:
Zitat von lazydog Beitrag anzeigen
Irgenwie verstehe ich dein Problem nicht. Deine Abfrage, ergänzt mit dem ORDER BY rand() macht doch genau das.
Leider nicht. Die Abfrage mit "order by rand()" wird pro Vergleich über WEHRE einmal ausgeführt. Und dann werden jedes Mal die Datensätze angeordnet und der erste zurückgeliefert. a) ist das Ergebnis nicht das gesuchte. b) schreckliche Performance.
Das war also wirklich ein ganz dummer Tipp von mir.

Geändert von David (09.05.2008 um 09:33 Uhr).
David 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
Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt Seb PHP Tipps 2008 2 29.05.2008 11:36
MySQL Abfrage von Ver. 5 für Ver 3. des MySQL Servers FireFIghter Datenbanken 3 02.02.2007 17:18
Datum bezogene mysql abfrage ApfeL Datenbanken 5 22.10.2006 16:03
MySQL Abfrage macht Seite langsam Datenbanken 11 19.10.2006 19:38
MySQL - Abfrage: Unterschiedliche Ergebnisse aus PHP/manuell horstenpeter Datenbanken 3 16.07.2006 13:22
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
mysql abfrage mqs PHP Tipps 2006 4 09.04.2006 17:57
Abfrage bei mySQL 4 ApfeL Datenbanken 5 24.03.2006 18:53
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
Mysql Abfrage Datenbanken 4 27.02.2005 22:26
[Erledigt] Mysql Abfrage Problem! PHP-Fortgeschrittene 5 27.11.2004 10:22
komplizierte mySQL Abfrage Datenbanken 6 25.06.2004 15:34
[Erledigt] mysql Abfrage Datenbanken 5 18.06.2004 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql subquery, subquery mysql, mysql subqueries, mysql subquery where, mysql subquery in, subqueries mysql, mysql select subquery, php mysql subquery, mysql unterabfragen, mysql subquery like, mysql where in subquery, subquery in mysql, mysql subquery as, mysql where subquery, mysql subquery from, mysql in subquery, mysql subquery langsam, mysql subquery list, mysql subquery performance, mysql select subqueries

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:32 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