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 21-05-2010, 11:32
smyl
 Registrierter Benutzer
Links : Onlinestatus : smyl ist offline
Registriert seit: Sep 2002
Ort: Seeheim
Beiträge: 61
smyl ist zur Zeit noch ein unbeschriebenes Blatt
Standard Fehlende Einträge (hier: Personen) finden

Hallo,

ich würde mich über eine kurze Hilfe freuen. Zur Illustration meines Problem das folgende Beispiel:

Es gibt folgende Tabellen:
Personen (id / name)
Eventteilnehmer (id / personen_id)

Ausgangssituation
: In der Tabelle Eventteilnehmer befindet sich ein Teil der Personen (verknüpft über personen_id).

Problem (Ziel): Ich möche jetzt herausfinden welche Personen noch nicht als Eventteilnehmer feststehen. Also sich noch nicht in Eventteilnehmer befinden

Zusatz: Mir ist bewusst, dass das Ganze über eine Schleife problemlos lösbar ist. Allerdings suche ich ein Weg, der etwas schneller und Performance-freundlicher ist. Abfrage findet recht häufig statt und sollte schnell zum Ergebnis kommen (Beispiel war zur einfachen Illustration - geht um einen Vokabeltrainer).

Gibt es z.B. eine MySQL Abfrage, welche die Ergebnisse liefert?

Vielen Dank
Mit Zitat antworten
  #2 (permalink)  
Alt 21-05-2010, 11:39
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Informiere dich mal über JOINs.
Mit Zitat antworten
  #3 (permalink)  
Alt 21-05-2010, 12:12
smyl
 Registrierter Benutzer
Links : Onlinestatus : smyl ist offline
Registriert seit: Sep 2002
Ort: Seeheim
Beiträge: 61
smyl ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke, denke konzeptionell habe ich es. Mal sehen, ob auch die Integration zum gewünschen Ergebnis führt.



Klar: Gibt einen Grund, weshalb das Thema "JOINS" fixiert ist. Also eine kleine Entschuldigung dafür, dass ich dem Artikel nicht die nötige Aufmerksamkeit geschenkt habe. Quadrate und Wurzeln sind etwas abgeschreckend ;-)

Im Laufe der Nutzung hat sich bei mir ein Folgeproblem ergeben für das ich bisher keine Lösung gefunden habe.

Ursprungsproblem:

Es gibt folgende Tabellen:
Personen (personen_id / name)
Eventteilnehmer (id / personen_id)

Ausgangssituation
: In der Tabelle Eventteilnehmer befindet sich ein Teil der Personen (verknüpft über personen_id).

Problem (Ziel): Ich möche jetzt herausfinden welche Personen noch nicht als Eventteilnehmer feststehen. Also sich noch nicht in Eventteilnehmer befinden

Lösung

PHP-Code:
SELECT Personen.name
FROM Personen
LEFT JOIN Eventteilnehmer USING 
(personen_id)
WHERE  Eventteilnehmer.personen_id IS NULL 
Folgeproblem:

Beide meine Tabellen haben jetzt zusätzliche Attribute. Eventteilnehmer können männlich oder weiblich sein. In der Tabelle Eventteilnehmer werden außerdem Eventteilnehmer für verschiedene Events aufgeführt.

Es gibt also folgende Tabellen:
Personen (personen_id / name / geschlecht [1/2])
Eventteilnehmer (id / personen_id / event_id)
Problem (Ziel): Ich möche jetzt herausfinden welche Männer (geschlecht=1) noch nicht als Eventteilnehmer bei einem bestimmten Event feststehen.

Folgende Abfrage führt leider nicht zum Ziel

PHP-Code:
SELECT Personen.name
FROM Personen
LEFT JOIN Eventteilnehmer USING 
(personen_id)
WHERE  Eventteilnehmer.personen_id IS NULL
AND Eventteilnehmer.event_id='1'
AND Personen.geschlecht='1' 
Mir ist bewusst, dass das Problem bei Eventteilnehmer.event_id='1' liegt, aber welchen Lösungsweg gibt es?



Ok, habe (glaube ich) die Lösung .

Einfach nach dem Stil:

PHP-Code:
LEFT JOIN table_name2
ON table_name1
.column_name=table_name2.column_name AND .... 
So passt das.

Geändert von AmicaNoctis (26-05-2010 um 02:05 Uhr) Grund: Mehrfachposting
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kann Fehler hier nicht finden,... Azadoras PHP Developer Forum 3 03-11-2007 13:50
Ähnliche EInträge finden fabs[NO] SQL / Datenbanken 3 20-05-2007 13:52
MySQL fehlende Einträge finden thesilencer5 SQL / Datenbanken 1 10-11-2006 17:38
[MySQL] Eine ID über mehrere Einträge finden Heavensdoor SQL / Datenbanken 13 21-06-2005 07:54
Warum sind hier leere Einträge möglich? spiciman PHP Developer Forum 3 29-04-2002 11:42

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 05:51 Uhr.