AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Tags mit und Verknüpfen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Tags mit und Verknüpfen

Ein Thema von arbu man · begonnen am 1. Mai 2008 · letzter Beitrag vom 1. Mai 2008
Antwort Antwort
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#1

SQL Tags mit und Verknüpfen

  Alt 1. Mai 2008, 18:38
Datenbank: MySQL • Version: 5 • Zugriff über: Zeos / MySQL Connector
Hi,

ich suche eine passende SQL Abfrage. Ich habe 3 Tabellen(songs: Songdaten Title, Artist; tags: Schlagwörter; songtag: m:n Relation zwischen songs und tags Nun möchte ich alle Lieder ausgeben, die die Tags rock, pop und metal haben. Mein Problem liegt dabei in der UND Verknüpfung der Tags.
Für die ODER Abfrage hab ich den SQL-Code:
SQL-Code:
SELECT
   s_artist, s_title
FROM
   music__tagsong ts,
   music__songs s,
   music__tag t
WHERE
   ts.ts_song = s.s_id AND
   ts.ts_tag = t.t_id AND
   t.t_name IN ('rock', 'pop', 'metal')
;
Nur hab ich keine Idee für die UND Abfrage...

Ciao, Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: SQL Tags mit und Verknüpfen

  Alt 1. Mai 2008, 18:45
Poste mal die vollständigen Metadaten der Tabellen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#3

Re: SQL Tags mit und Verknüpfen

  Alt 1. Mai 2008, 19:11
Ok, ich denke du meinst den Tabellencode:
SQL-Code:
--
-- Tabellenstruktur für Tabelle `music__songs`
--

CREATE TABLE `music__songs` (
  `s_id` int(11) NOT NULL auto_increment,
  `s_title` varchar(255) collate latin1_general_ci NOT NULL,
  `s_artist` varchar(255) collate latin1_general_ci NOT NULL,
  `s_album` varchar(255) collate latin1_general_ci NOT NULL,
  `s_rating` int(11) NOT NULL,
  `s_desc` text collate latin1_general_ci NOT NULL,
  `s_genre` varchar(255) collate latin1_general_ci NOT NULL,
  `s_addtime` int(11) NOT NULL,
  PRIMARY KEY (`s_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2370 ;

--
-- Tabellenstruktur für Tabelle `music__tag`
--

CREATE TABLE `music__tag` (
  `t_id` int(11) NOT NULL auto_increment,
  `t_name` varchar(255) collate latin1_general_ci NOT NULL,
  `t_count` int(11) NOT NULL,
  PRIMARY KEY (`t_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1764 ;

--
-- Tabellenstruktur für Tabelle `music__tagsong`
--

CREATE TABLE `music__tagsong` (
  `ts_id` int(11) NOT NULL auto_increment,
  `ts_tag` int(11) NOT NULL,
  `ts_song` int(11) NOT NULL,
  `ts_uid` int(11) NOT NULL default '0',
  PRIMARY KEY (`ts_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4674 ;
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
741 Beiträge
 
#4

Re: SQL Tags mit und Verknüpfen

  Alt 1. Mai 2008, 19:29
Meinst du sowas hier?

SQL-Code:
SELECT
   s_artist, s_title
FROM
   music__tagsong ts,
   music__songs s,
   music__tag t
WHERE
   ts.ts_song = s.s_id AND
   ts.ts_tag = t.t_id AND
   t.t_name IN ('rock', 'pop', 'metal')
GROUP BY
   s_artist, s_title
HAVING
   count(*) = 3
;
Oder soll das selbe Lied wirklich 3 mal angezeigt werden?
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#5

Re: SQL Tags mit und Verknüpfen

  Alt 1. Mai 2008, 20:08
Genau das meine ich, die Abfrage funktionier wunderbar Danke
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Antwort Antwort


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz