Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

sql join frage

Diskussion: sql join frage im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hi, ich habe folgende Ausgangssituation. 2 Tabellen über eine LinkTabelle (n:n) verknüpft. Seite -> SeiteTagsLink <- Tags Ich möchte ...

Antwort
Alt 18.10.11, 13:16   #1 (permalink)
 
Benutzerbild von b4ck
 
Registriert seit: 13.02.06
b4ck Leistung: Z3
Likes: 1
erledigt sql join frage

Anzeige

Hi,

ich habe folgende Ausgangssituation.

2 Tabellen über eine LinkTabelle (n:n) verknüpft.

Seite -> SeiteTagsLink <- Tags

Ich möchte einen Query bauen der mir ALLE Seiten zurück gibt die ALLE Tags aus einer Liste enthalten

Code:
SELECT * FROM Seite
LEFT JOIN SeiteTagsLink ON Seite.id = SeiteTagsLink.seite_id
WHERE
SeiteTagsLink.tag_id = 5
AND
SeiteTagsLink.tag_id = 6
Sollte mir alle Seiten zurückgeben die die Tags mit der ID 5 und 6 haben.
Es gibt auf jedenfall seiten die sowohl Tag 5 als auch Tag 6 gesetzt haben.
Trotz bekomme ich immer 0 Results.
Wenn ich nur einen Tag prüfe funktioniert der Query.

Leider steh ich ihr etwas an, ich bin für jeden TIpp dankbar.

Geändert von b4ck (21.10.11 um 09:46 Uhr)
b4ck ist offline   Mit Zitat antworten
Alt 18.10.11, 14:33   #2 (permalink)
Member of Honour
 
Benutzerbild von GrafZahl
 
Registriert seit: 28.05.10
GrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: OpteronGrafZahl Leistung: Opteron
Likes: 211
Standard

das problem liegt in dem AND ...

deine resultat tabele sieht irgendwie so aus:

blah | blah | blah | 5
blah | blah | blah | 6

wobei die letzte spalte deine Tag_id ist ...

dein query sucht nach zeilen, in denen diese spalte GLEICHZEITIG 5 und 6 ist ...

eine lösung dafür wäre:

mache aus dem AND ein OR und gruppiere nach der seite ... füge eine weitere bedinung ein die count(tag_id) = [anzahl der gesuchten tags] prüft ... ggf. muss für das count noch eine distinct einschränkung aufgestellt werden
__________________
Code:
:(){ :|:& };:
Veritas Aequitas
GrafZahl ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 21.10.11, 09:38   #3 (permalink)
Themenstarter
 
Benutzerbild von b4ck
 
Registriert seit: 13.02.06
b4ck Leistung: Z3
Likes: 1
erledigt

danke !

Code:
SELECT s.id, s.title
FROM seite s
LEFT JOIN seite_tag_link st ON s.id = st.seite_id
WHERE st.tag_id = 2
  OR st.tag_id = 4
GROUP BY s.id
HAVING count(st.tag_id) = 2
war dann die lösung
b4ck ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » SQL sql join frage
Themen-Optionen
Ansicht

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

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MSSQL - inner join + group by b4ck Code Kitchen 4 24.03.11 18:12
[SQL] Update mit JOIN Thunderb0lt Code Kitchen 12 09.02.10 13:02
SQL Inner Join Problem weau (Web-) Design und webbasierte Sprachen 7 15.03.08 01:04
Mysql Inner join problem weau (Web-) Design und webbasierte Sprachen 4 17.03.07 12:05
Join CPU8080 (Web-) Design und webbasierte Sprachen 6 06.02.06 21:19


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61