php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.05.2005, 11:24  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard Dubletten herausfiltern mit verbinden 2er tabellen.

zur verfügung steht nur mysql 3.23.55

folgende Datenbankstruktur:

mod_nl_recipients -> hier werden die emailadressen, name etc des eintrags zusammen mit einer ID gespeichert.

Code:
CREATE TABLE `mod_nl_recipients` (
  `nlrID` int(11) NOT NULL auto_increment,
  `nlrMail` varchar(120) NOT NULL default ''
## hier gibts noch weitere felder die nicht relevant sind
  PRIMARY KEY  (`nlrID`),
  KEY `nlrID` (`nlrID`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
und hier die verbindung zu den jeweiligen gruppen in denen die Email steht.
nlrgID ist eine fortlaufende ID (eigentlcih unnötig, db-design ist nicht von mir)
nlrgRID = ID des Empfängers
nlrgGID = ID der Gruppe in der der Empfänger ist (verknüpfung zu einer weiteren tabelle.
Code:
CREATE TABLE `mod_nl_recipient_groups` (
  `nlrgID` int(11) NOT NULL auto_increment,
  `nlrgRID` int(11) NOT NULL default '0',
  `nlrgGID` int(11) NOT NULL default '0',
  PRIMARY KEY  (`nlrgID`),
  KEY `nlrgGID` (`nlrgGID`),
  KEY `nlrgID` (`nlrgID`),
  KEY `nlrgRID` (`nlrgRID`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
So die ganze Zeit wurden Doppelte Einträge nur auf diesem Weg gefiltert:

Code:
SELECT 
    nlrMail,COUNT(*) AS Count 
FROM 
    `mod_nl_recipients` 
GROUP BY 
    nlrMail 
HAVING 
    Count  > 1
Problem war, es war kein Rückschluss darauf zu ziehen, ob eine Emailadresse einfach mehrfach in einer Gruppe war, oder nur in 5 verschiedenen Gruppen.
jetzt hab ich mir halt gedacht, verbinde ich dieses query mit der 2ten Tabelle und mach 1 query für jede Gruppe sollte dann so aussehen:

Code:
SELECT 
	t1.nlrMail,COUNT(*) AS Count 
FROM 
	mod_nl_recipients AS t1
LEFT JOIN
	mod_nl_recipient_groups AS t2
ON 
	t1.nlrID = t2.nlrgRID
GROUP BY 
	t1.nlrMail
HAVING
	Count  > 1
WHERE
    	t2.nlrgGID = 3
[/quote]
das problem in diesem fall ist das WHERE, sobald ich das drin hab, bekomme ich nur noch einen fehler.
dachte dann man könnte das mit ins ON packen, das hatte aber keinerlei effekt:

[quote]
SELECT 
	t1.nlrMail,COUNT(*) AS Count 
FROM 
	mod_nl_recipients AS t1
LEFT JOIN
	mod_nl_recipient_groups AS t2
ON 
	t1.nlrID = t2.nlrgRID AND
	t2.nlrgGID = 3
GROUP BY 
	t1.nlrMail
HAVING
	Count  > 1
dieses query bringt mir allerdings immer die zahl aller einträge, nicht nur der die in Gruppe 3 sind.

Irgendwie steh ich da jetzt total auf dem schlauch :P
freu mich über jeden brocken / link / etc der mcih meinem ziel ein stückchen näher bringt.
robo47 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.05.2005, 11:55  
Gast
 
Beiträge: n/a
Standard

vielleicht so: (???)
Code:
SELECT
   t1.nlrMail,COUNT(*) AS Count
FROM
   mod_nl_recipients AS t1
LEFT JOIN
   mod_nl_recipient_groups AS t2
ON
   t1.nlrID = t2.nlrgRID AND
   t2.nlrgGID = 3
WHERE
   t2.nlrgGID IS NOT NULL /* <<<<<<<<<<<<<<<<<<<<<<< */
GROUP BY
   t1.nlrMail
HAVING
   Count  > 1
mfG ~dilemma~


PS:
Und vielleicht musst du auch die Reihenfolge
von WHERE, GOUP BY, und HAVING beachten !?

(prosit)
  Mit Zitat antworten
Alt 12.05.2005, 11:59  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

oh wow, zumindest mal ein andere wert ich glaub das wars an die reihenfolge hätte ich jeztt null gedacht, wieder was gelernt.:P
vielen dank

mfg
robo47
robo47 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
Tabellen für Vokabeltrainer anlegen... anonym01 PHP Tipps 2008 9 03.03.2008 21:18
PHP Array in MYSQL Tabellen schreiben Matt Datenbanken 1 26.02.2008 19:43
5 tabellen miteinander verknüpfen. miwo Datenbanken 2 22.09.2007 11:17
2 Tabellen verbinden wo eien davon Auswahliste ist Beutel Datenbanken 1 20.03.2007 23:52
2 Tabellen, 1 Ausgabe (+Dubletten abfangen) madSoul Datenbanken 2 04.09.2006 10:37
2 Tabellen verbinden, die nichts gemeinsam haben chr Datenbanken 12 06.07.2006 18:31
3 Tabellen verbinden madSoul Datenbanken 4 30.03.2006 15:37
verbinden von 3 Tabellen... madSoul Datenbanken 6 23.03.2006 13:17
einträge aus 2 tabellen sortieren Tschuu Datenbanken 11 20.12.2005 08:21
3 Tabellen verbinden... Datenbanken 2 21.09.2005 21:16
MySQL - mehrere tabellen verbinden freitz PHP Tipps 2005-2 1 02.07.2005 15:44
[Erledigt] tabellen verbinden.... PHP Tipps 2005 4 28.04.2005 11:38
Tabellen verbinden b++ Datenbanken 3 14.04.2005 11:19
[Erledigt] Ausgelesende Daten in MySQL Tabellen mit Links verbinden Datenbanken 8 15.01.2005 20:50
[Erledigt] Selectanfrage an eine Datenbank,aber aus mehreren Tabellen Datenbanken 2 26.10.2004 07:23

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql join dubletten, dubletten datenbank filtern, dubletten datenbank having, sql dubletten count, sql dubletten filtern, mysql verbinden von zwei tabellen key, mysql dubletten filtern, doubletten sql, having dubletten, zend framework left join doppelte einträge, dubletten herausfiltern, left join dubletten, sql tabelle doubletten zusammenfassen, sql right join dubletten woher, php datenbank filter kombinieren, dubletten having by, mysql dupletten aus zwei tabellen, inner join dubletten, having count dupletten, tabelle von dubletten

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.