 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
24.12.2004, 14:48
|
#1
|
|
TP-Junior
Registriert seit: Jul 2004
Ort: München
|
Komplexe mysql abfrage...
Hi,
ich habe 2 tabellen. (eigentlich 3 da in der dritten die eigenschaften definiert sind...)
in der ersten sind artikel drin und in der zweiten die gesetzten eigenschaften in mehreren zeilen.
tabelle1
- artikel_id
- artikel_name
- ....
tabelle2
- artikel_eigenschaft_system_id
- artikel_id
- artikel_eigenschaft_id
Ich möchte jetzt alle artikel die die artikel_eigenschaft_id = 1 UND artikel_eigenschaft_id = 2 haben !!!
Hier habe ich das problem, dass die eigenschaften in mehreren zeilen stehen und ich nicht weiß wie ich das verknüpfen soll.
Jemand eine Idee ?
Danke & schöne Feiertage
Gruß
Chris
|
|
|
24.12.2004, 14:57
|
#2
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
Code:
select artikel_name from tabelle1 where tabelle2.artikel_id = 1 and tabelle2.artikel_eigenschaft_id = 2 and tabelle1.artikel_id = tabelle2.artikel_id
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
|
|
|
24.12.2004, 15:10
|
#3
|
|
TP-Junior
Registriert seit: Jul 2004
Ort: München
|
Das ist es nicht.. :o(
Problem ist, dass die Artikeleigenschaften in mehreren Zeilen steh nicht in spalten, somit bekommst Du mit einer UND verknüpfung nie ein resultat, da das gleiche feld in einer zeile mit zwei werten abgefragt wird und das geht nicht.
Wenn ich das verschachteln könnte würde ich das dan so machen:
SELECT * FROM (
SELECT count(artikel_eigenschaft_id),artikel_id as cc FROM tabelle2
WHERE tabelle2.artikel_eigenschaft_id = 1
OR tabelle2.artikel_eigenschaft_id = 3
GROUP BY tabelle2.article_id ) as tempx
WHERE tempx > 1
|
|
|
24.12.2004, 15:15
|
#4
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
http://dev.mysql.com/doc/mysql/de/JOIN.html
Dein Propblem hab ich zwar immer noch nicht nachvollziehen können - aber egal
[edit] Kann es sein, dass ein einfaches OR dein Problen löst?
Code:
artikel_eigenschaft_id = 1 OR artikel_eigenschaft_id = 2
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
Geändert von Dennis The Menace (24.12.2004 um 15:24 Uhr).
|
|
|
24.12.2004, 15:33
|
#5
|
|
TP-Junior
Registriert seit: Jul 2004
Ort: München
|
Hier mal die Daten:
tabelle1
artikel_id | artikel_name | ....
22 vw golf
23 vw polo
tabelle2
artikel_eigenschaft_system_id | artikel_id | artikel_eigenschaft_id
1 22 1
1 22 4
1 22 2
1 23 6
1 23 1
so wenn ich jetzt abfrage, gib mit alle artikel wo artikel_eigenschaft_id = 1 UND artikel_eigenschaft_id = 2 ist dann kann ich nicht einfach sagen
SELECT * FROM tabelle2 WHERE artikel_eigenschaft_id = 1 AND artikel_eigenschaft_id = 2 !!!!
Mit OR würde ich Artikel_id 23 auch als ausgabe bekommen da dieser die eigenschaft_id = 1 hat. Aber ich will ja nur die Artikel die beides haben.
???
|
|
|
24.12.2004, 16:29
|
#6
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
Und jetzt sag mir mal, ob das ne Version ist, die Subselect kennt^^
Viva le Oracle 
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
|
|
|
24.12.2004, 17:15
|
#7
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Hi
versuchs mal mit dem having.
SELECT count( artikel_id ) AS feld, artikel_id
FROM tabelle2
WHERE artikel_eigenschaft_id
IN ( 1, 2 )
GROUP BY artikel_id
HAVING count( artikel_id ) > 1
__________________
Liebe Grüße, die Judi!
|
|
|
24.12.2004, 17:50
|
#8
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Ich komme aus dem Zauberwald
|
Ich finds erstaunlich, dass man das In( x,xx) doch immer wieder vergessen kann 
__________________
Zwei Dinge sind Unbestreitbar:- In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.
- Die Erde ist eine Scheibe!
Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!
|
|
|
24.12.2004, 23:37
|
#9
|
|
TP-Junior
Registriert seit: Jul 2004
Ort: München
|
Thx Judi ....
Vielen Dank, dass war genau das was ich gesucht hatte.
Ich komme leider aus der MSSQL Ecke da ist man etwas verwöhnt mit subselects...
Ich war schon dabei die mysql version upzugraden und das mit nem subselect zu machen aber Du warst meine Rettung
Danke & Gruß
Christian
|
|
|
25.12.2004, 00:20
|
#10
|
|
TP-Supporter
Registriert seit: Apr 2001
|
Hiho
dieses Statement liefert Dir allerdings nur einen zu verarbeitenden Wert (Feld) zurück. Dafür ist ein Subselect nicht unbedingt nötig. Möchtest Du aber die genaue Auflistung 1, 2 jedes Artikels (obs Sinn macht, steht auf einem anderen Blatt) oder eine Ausgabe anderer Spalten, die über das group by nicht zuzuordnen sind, ist ein Subselect oder die Verarbeitung über eine View meines Erachtens unumgänglich.
__________________
Liebe Grüße, die Judi!
Geändert von Judi (25.12.2004 um 11:39 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:43 Uhr.
|
 |