Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

[MySQL] 5 Tabellen abfragen mit einem SELECT...

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 12.05.2009, 10:56

Ich habe 5 Tabellen ...
tab0
id int(11)
auto int(1)
fahrrad int(1)
moto int(1)

tab1
id int(11)
birne int(1)
aepfel int(1)
gemuese int(1)
usw.

tab2
id int(11)
kartoffel int(1)
tomaten int(1)
usw.


Nun möchte ich eine Abfrage starten, der mir zeigt wo tomaten=1, birne=1 und auto=1 bei id=5 mit einer select abfrage...

wie stelle ich das an?

Code: Alles auswählen

select distinct tab0.id from tab0,tab1,tab2i where tomaten=1 AND birne=1 AND auto=1
das klappt auch, das erste Ergebnis ist auch das was alle 3 Anforderungen entspricht aber alle anderen folgenden stimmen nicht ...
Zuletzt geändert von JohnBi am 12.05.2009, 11:32, insgesamt 1-mal geändert.
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


DZVO
PostRank 6
PostRank 6
Beiträge: 476
Registriert: 27.12.2005, 04:44

Beitrag von DZVO » 12.05.2009, 11:29

Also deine Frage hab ich nicht ganz verstanden
aber hier ein Denkansatz

Code: Alles auswählen


Select * 
FROM tab0 t0 
INNER JOIN tab1 t1 ON t1.id = t2.id
INNER JOIN tab2 t2 ON t2.id = t1.id
WHERE t0.id = xxx
kuckst du oder schluckst du .... | FollowTheMillion sag ich nur :)

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 12.05.2009, 11:32

jip, mit nem Join geht es. wobei ich hier nen inner join machen würde.

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 12.05.2009, 11:36

Ok, vielen Dank, ich hab mich mies ausgedrückt.

Ich suche eine Möglichkeit alle Ergebnisse wo diese 3 Dinge zutreffen,

also tomaten=1, birne=1 und auto=1

Ich versuche deinen Denkansatz mal umzusetzen und bissel zu frikkeln. Danke
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 12.05.2009, 11:44

sag vllt. mal ein Beispiel was logisch ist, dann geht es besser zu helfen. aber nen join ist grundsätzlich gut.

allerdings.,. ist id nen PrimaryKey und gibt es ForeignKeys?

und was hat obst, gemüse und autos miteinander zu tun? :-)

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 12.05.2009, 11:47

jo id ist immer primary key

also, was soll ich zur Logik sagen, das sind eben Tabellen mit Eigenschaften die entweder auf 1 oder auf 0, vorhanden oder nicht vorhanden sind, das sind dutzende Tabellen.

und nun möchte jemand zum beispiel jemand eben die ID suchen mit den Eigenschaften x=1 y=1 und z=1

und diese eigenschaften befinden sich in dutzenden tabellen...

ich hab nun ein paar Testläufe gemacht mit der Variante von DVZO mit Inner JOIN und es scheint super zu klappen, wenn nochmal was sein sollte melde ich mich , danke vielmals an alle.
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 12.05.2009, 11:51

na da würde ich dir aber mal ne überprüfung deiner tabellen empfehlen. grundsätzlich würde da eine reichen bzw. 2 anstatt zig 1000

tabelle1 = die einstellungen
id -> int
value_id -> int
value -> ...

tabelle2 = die werte welche du auf 0 oder 1 stellen kannst
id -> int
value_name -> ...


quasi ne ini datei. das ist leichter abzufragen und performance unanfälliger.

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 12.05.2009, 12:03

danke, aber das Kind ist bereits in den Brunnen gefallen und die Daten liegen eben nun so vor ... da kann ich nicht mehr viel machen ausser das so nehmen wie es ist ...
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 12.05.2009, 12:04

warum? per insert/select importieren umwandeln...

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 12.05.2009, 12:05

das sind schon über 3000 Datensätze und alle mit diesen anderen Tabellen verknüpft und da einige zahlen, darf nichts schief gehen, das Ding ist festgefahren, da geht garnichts...
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

DanielS
PostRank 9
PostRank 9
Beiträge: 1179
Registriert: 03.08.2008, 08:45

Beitrag von DanielS » 12.05.2009, 12:55

TheRob hat geschrieben:per insert/select importieren umwandeln...
JohnBi hat geschrieben:das sind schon über 3000 Datensätze...
Das hat nichts mit der Anzahl zu tun. Mach's wie TheRob schreibt und Du oder der nächste, der Dir bei der Lösung in einem Forum helfen will, hat zukünftig weniger Probleme.

TheRob
PostRank 5
PostRank 5
Beiträge: 274
Registriert: 10.06.2008, 11:44
Wohnort: Wetzikon

Beitrag von TheRob » 12.05.2009, 13:02

DanielS hat geschrieben: Das hat nichts mit der Anzahl zu tun. Mach's wie TheRob schreibt und Du oder der nächste, der Dir bei der Lösung in einem Forum helfen will, hat zukünftig weniger Probleme.
0X

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 14.05.2009, 11:39

leg dir ne neue struktur zu, importiere deine daten in die neue tabelle und dann definierst du einen view basierend auf der neuen tabelle der die alte tabellen struktur abbildet. dann schreibst du einen trigger der die inserts und updates auf die alte tabelle in die neue tabelle umlenkt. dann kannst du anfangen in ruhe deine applikation umzuschreiben.

JohnBi
PostRank 10
PostRank 10
Beiträge: 2957
Registriert: 22.02.2009, 20:31

Beitrag von JohnBi » 14.05.2009, 11:58

Jo, alles klar, ne ich hab es nun wie oben beschrieben gelöst und der Server scheint es locker zu packen ... danke nochmals für die vielen Antworten
Probleme mit Google & Co.? Hier die Lösung! - Linktausch?! | Projekt kaufen?! |
-------------------------------------------
Der PostRank und das Anmeldedatum stehen in keinem Verhältnis zur Qualität der Antworten einiger User. {JohnBi, 2009}

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag