php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.12.2011, 06:14  
Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 96
PHP-Kenntnisse:
Anfänger
kosha kann nur auf Besserung hoffen
Standard [Erledigt] Verknüpfte Abfragen mehrerer Tabellen und Bedingungen

Hallo,

hab folgende Aufgabenstellung,
zwei Tabellen, eine für Kategorien eine für Veranstaltungen

jetzt wollte ich eine Abfrage machen dass Wenn die Veranstaltung noch nicht begonnen hat ich den (Kategorienamen(ist nur in der Kategorien_Tabelle)) angezeigt bekomme, in der Veranstaltungen - Tabelle ist nur die ID der Kategorie gespeichert...
Das Problem für jede Kategorie sind etliche Veranstaltungen gespeichert, also will ich auch keine doppelten Einträge in meinem array,
es sollen halt nur die Kategorien angezeigt werden die Aktuelle Veranstaltungen/Meetings besitzen...

Ist so eine Abfrage möglich, bzw. dachte ich mir dass es weniger hin und her ist.. als mehrere Abfragen zu tätigen


freue mich auf eure Antworten
kosha ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.12.2011, 13:34  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Das Problem für jede Kategorie sind etliche Veranstaltungen gespeichert, also will ich auch keine doppelten Einträge in meinem array,
es sollen halt nur die Kategorien angezeigt werden die Aktuelle Veranstaltungen/Meetings besitzen...
Schlüsselwort DISTINCT (?)
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 07.12.2011, 17:26  
Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 96
PHP-Kenntnisse:
Anfänger
kosha kann nur auf Besserung hoffen
Standard

Danke für den Tipp...
Aber leider konnte ich nicht viel damit anfangen...

Bei MySQL.de stand zwar viel info darüber aber ich verstehe da nur Bahnhof.

Gibts da auch eine Erklärung für Dummies???
kosha ist offline   Mit Zitat antworten
Alt 08.12.2011, 09:53  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Was gibts daran nicht zu verstehen?
DISTINCT eleminiert Doubletten im Ergebnis.

Und du sprachst von
Zitat:
doppelten Einträge


Code:
SELECT vorname FROM table

Horst
Horst
Horst
Code:
SELECT DISTINCT vorname FROM table

Horst
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 08.12.2011, 17:05  
Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 96
PHP-Kenntnisse:
Anfänger
kosha kann nur auf Besserung hoffen
Standard

Ja das nenn ich mal verständlich!

Ok also benutze ich Distinct um doppelte Ergebnisse zu vermeiden.
Was ich aber braucher sind nur ergebnisse aus t1 wenn in der t2 kindelemente von t1.id exestieren.
JOIN wäre doch das was ich in dem Fall brauche richtig?
kosha ist offline   Mit Zitat antworten
Alt 08.12.2011, 18:14  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Richtig.

Da aber (wahrscheinlich) in t2 mehr als eine Übereinstimmung zu t1 existiert, wirst du auch im JOIN Doubletten erhalten (es sei denn, du hast zwischen t1 und t2 eine 1:1 Beziehung).
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 08.12.2011, 20:59  
Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 96
PHP-Kenntnisse:
Anfänger
kosha kann nur auf Besserung hoffen
Standard

Nee also in t1 gibts keine Doubletten, es sind halt in t2 für jede t1.id mehrere Kind-Einträge vorhanden

Also ichversuchsmalso...

SELECT t1.id, t1.name FROM DISTINCT JOIN t1,t2 WHERE t2.start > NOW

Etwa so???
kosha ist offline   Mit Zitat antworten
Alt 08.12.2011, 21:37  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von kosha Beitrag anzeigen
Nee also in t1 gibts keine Doubletten, es sind halt in t2 für jede t1.id mehrere Kind-Einträge vorhanden
Sag ich doch... für EINE id in t1 gibt es MEHR ALS EINEN Datensatz in t2...
Gibt auch beim INNER JOINen Doubletten, der t1 Datensatz wird so oft im Ergebnis aufgeführt, wie er t2 Datensätze "trifft".

Zitat:
Zitat von kosha Beitrag anzeigen
SELECT t1.id, t1.name FROM DISTINCT JOIN t1,t2 WHERE t2.start > NOW
Nein, das ist in jedem Fall ungültige Syntax, abgesehen davon wäre das ein cross join, völlig unnötigerweise.

Eher so in der Art:
Code:
SELECT DISTINCT 
    t1.id, 
    t1.name 
FROM 
    t1 
INNER JOIN 
    t2 
ON 
    t1.id=t2.foreign_key_to_t1 
WHERE 
    t2.start > NOW
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 08.12.2011, 23:57  
Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 96
PHP-Kenntnisse:
Anfänger
kosha kann nur auf Besserung hoffen
Standard

Achso... Dank dir vielmals, werd mich damit noch intensiver auseinander setzen müssen.

Bringt aber einen schon sehr viel weiter.
kosha ist offline   Mit Zitat antworten
Alt 09.12.2011, 01:07  
Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 96
PHP-Kenntnisse:
Anfänger
kosha kann nur auf Besserung hoffen
Standard

Irgendwie wird die Bedingung nicht erfüllt.
Habe in der start - Spalte solche werte stehen "2011-12-10 10:00:00"
Und im code um nur zukünftige Ereignisse anzusprechen schreib ich
Code:
SELECT DISTINCT
id, name
FROM
{tabelle_1} t1
INNER JOIN
{tabelle_2} t2
ON
t1.id=t2.cat_id
WHERE
t2.start > addtime(NOW(),'24:00:00'
Also alle veranstaltungen die frühestens morgen stattfinden

Wenn ich nur die Veranstaltungen so finden möchte geht das,
Aber in diesem Fall will ich nur die Kategorien angezeigt bekommen, dessen Veranstaltungen frühestens morgen beginnen.

Es ist so als ob die Bedingung bei der Anfrage nicht relevant ist...
Hast du vllt noch nen Tipp?
kosha 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
Probleme beim Abfragen zweier Tabellen... Lapje Datenbanken 3 07.04.2011 22:50
Select Befehl für 2 Tabellen Abfragen Ruffy PHP Einsteiger 6 09.12.2010 05:07
[Erledigt] 2 MySQL Tabellen abfragen jordanoooo Datenbanken 7 16.02.2010 18:42
Verschiedene Tabellen abfragen und Ausgabe sortieren efrasch Datenbanken 4 12.10.2009 04:04
Mehrere Tabellen abfragen. Nicht verknüpfen ibeg Datenbanken 10 08.08.2009 23:26
[Erledigt] Mehrere MySQL Tabellen mit PHP abfragen DonMuchacho Datenbanken 7 27.07.2009 19:47
SQL - mehrere Tabellen abfragen userws Datenbanken 5 25.06.2009 18:50
Abfragen aus 2 Tabellen Kombinieren azrax Datenbanken 20 15.12.2008 00:35
[Erledigt] Limit auf Ergebnissumme mehrerer Tabellen Frank Datenbanken 8 02.09.2008 11:33
Mehrere gleich Abfragen bei verschiedenen Tabellen cyberholic Datenbanken 3 08.01.2007 17:59
Abfrage mehrerer Tabellen per PHP (Code vereinfachen) PHP Tipps 2007 4 18.12.2005 12:34
Verknüpfte Tabellen abfragen msdose Datenbanken 3 30.03.2005 10:43
2 Tabellen abfragen und dann variable unterschiedlich setzen Anuschka PHP Tipps 2004-2 2 22.12.2004 02:46
abfragen zwischen 2 Tabellen! Boennchen Datenbanken 1 02.08.2004 14:50
2 Tabellen abfragen Datenbanken 7 01.08.2004 18:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
verknüpfte abfrage

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