php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 20-08-2008, 13:39
pgmnetworks
 Newbie
Links : Onlinestatus : pgmnetworks ist offline
Registriert seit: Aug 2003
Beiträge: 20
pgmnetworks ist zur Zeit noch ein unbeschriebenes Blatt
Standard Ergebnisse nur bei bestimmter Anzahl an Zeilen!

Hallo!

Hab mal eine Frage - ich habe zwei Tabellen in der MySQL aus denen die Daten mittels SELECT ausgelesen werden.

Ist es nun möglich in dieser SELECT Abfrage zu definieren, dass nur Ergebnisse gefiltert werden, wenn in zweiten Tabelle mehr als 2 Zeilen für eine ID gefunden werden?

Beispiel:

TABELLE 1
==================
ID Text
==================
1 Text1
2 Text 2


TABELLE 2
==================
ID TAB1ID Text
==================
1 1 Tester 1
2 1 Tester 2
3 1 Tester 3
4 2 Tester 1
...
..


So ist in Tabelle 2 nur einmal die TAB1ID 2 vertreten, deswegen sollen nur Daten der TAB1ID = 1 ausgegeben werden

Selbstverständlich sind in der Originaltabelle mehr Daten. Dies dient nur der Veranschaulichung.

Abfrage "normal" ja möglich über
===========================
SELECT T1.TEXT, T2.TEXT FROM TABELLE1.T1, TABELLE2.T2 WHERE T1.ID=T2.TAB1ID ORDER BY T1.ID


Über ein PHP Script ist dies nicht möglich, da die Abfrage noch weiter verarbeitet wird.

Muss direkt im SQL Befehl passieren!!

Lg und vielen Dank!
Mit Zitat antworten
  #2 (permalink)  
Alt 20-08-2008, 14:02
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Group by und having count() sind deine Freunde.
Mit Zitat antworten
  #3 (permalink)  
Alt 20-08-2008, 14:07
pgmnetworks
 Newbie
Links : Onlinestatus : pgmnetworks ist offline
Registriert seit: Aug 2003
Beiträge: 20
pgmnetworks ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmmm danke... habe ich schon versucht - meine abfrage hat dann so ausgesehen - bekomme aber NULL resultate zurück:

SELECT T1.TEXT, T2.TEXT FROM TABELLE1.T1, TABELLE2.T2 WHERE T1.ID=T2.TAB1ID GROUP BY T2.TAB1ID HAVING COUNT(T2.TAB1ID) > 2 ORDER BY T1.ID
Mit Zitat antworten
  #4 (permalink)  
Alt 20-08-2008, 14:29
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von pgmnetworks
hmmm danke... habe ich schon versucht - meine abfrage hat dann so ausgesehen - bekomme aber NULL resultate zurück:

SELECT T1.TEXT, T2.TEXT FROM TABELLE1.T1, TABELLE2.T2 WHERE T1.ID=T2.TAB1ID GROUP BY T2.TAB1ID HAVING COUNT(T2.TAB1ID) > 2 ORDER BY T1.ID
Und wenn du die Fehlermeldungen nicht unterdrücken würdest, gäbe das auch noch einen Fehler.
Welchen Text aus t2 soll die DB von den dreien mit der tblid 1 auslesen? Und seit wann geht die FROM-Klausel einer Abfrage auf Attribute statt auf Tabellen?
Hier eine Version, die funktionieren könnte:
Code:
SELECT 
	t1.text
FROM 
	tabelle1 t1
INNER JOIN
	tabelle2 t2 ON  t1.id = t2.tab1id 
GROUP BY 
	t1.id 
HAVING 
	COUNT(t2.tab1id) > 2 
ORDER BY 
	t1.id
__________________
Gruss
H2O
Mit Zitat antworten
  #5 (permalink)  
Alt 20-08-2008, 14:43
pgmnetworks
 Newbie
Links : Onlinestatus : pgmnetworks ist offline
Registriert seit: Aug 2003
Beiträge: 20
pgmnetworks ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry, war nur ein fehler beim tippen hier... is natürlich nicht so in der originalabfrage!
Mit Zitat antworten
  #6 (permalink)  
Alt 20-08-2008, 15:23
pgmnetworks
 Newbie
Links : Onlinestatus : pgmnetworks ist offline
Registriert seit: Aug 2003
Beiträge: 20
pgmnetworks ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmmm... hab das jetzt mal probiert - ist auch soweit in ordnung - kann es nur sein, dass dieses group by das selbe ungefähr wie distinct macht?!??! ich krieg nämlich jetzt jeden datensatz aus tabelle 2 nur noch einmal ausgegeben - statt wie im beispiel 3 mal?!?!
Mit Zitat antworten
  #7 (permalink)  
Alt 20-08-2008, 15:45
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von pgmnetworks
kann es nur sein, dass dieses group by das selbe ungefähr wie distinct macht?!??! ich krieg nämlich jetzt jeden datensatz aus tabelle 2 nur noch einmal ausgegeben - statt wie im beispiel 3 mal?!?!
Nein, es wird jede Gruppe nur einmal ausgegeben. Deshalb kannst du ja auch den Text aus der zweiten Tabelle nicht sinnvoll ausgeben. Falls du das haben möchtest, müsstest du mit einem Subselect arbeiten:
Code:
SELECT 
	t1.text,
	t2.text
FROM 
	tabelle1 t1
INNER JOIN
	tabelle2 t2 ON  t1.id = t2.tab1id 
WHERE
	t1.id IN (
		SELECT 
			t3.id
		FROM 
			tabelle1 t3
		INNER JOIN
			tabelle2 t4 ON  t3.id = t4.tab1id 
		GROUP BY 
			t3.id
		HAVING 
			COUNT(t3.id) > 2 
	)
ORDER BY 
	t1.id
__________________
Gruss
H2O
Mit Zitat antworten
  #8 (permalink)  
Alt 20-08-2008, 15:46
pgmnetworks
 Newbie
Links : Onlinestatus : pgmnetworks ist offline
Registriert seit: Aug 2003
Beiträge: 20
pgmnetworks ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich danke dir!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:08 Uhr.