SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.08.2008, 10:48:01
bitwurst bitwurst ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 51
Beiträge: 30
Zuordnungstabelle n:m, Abfrage: in Zuordnung A aber nicht gleichzeitig in B

hallo zusammen,

ich hab folgendes problem mit einer Abfrage in einer n:m Beziehung (Zuordnungstabelle):

Beispiel-Tabellen als GIF: tabellen

Eigentlich ist das ganze komplexer, da es noch Bände und Ausgaben gibt. Aber das eigentliche Problem kann man auf die Bücher runterbrechen:
Es gibt Bücher, welche Objekte enthalten. Dabei können die unterschiedlichen Bücher auch die gleichen Objekte enthalten. Angenommen es gibt nur zwei Bücher (eigentlich Issues(Ausgaben))!

Ich brauche für einen Filter eine Abfrage die mir ausgibt welche Objekte NICHT in Buch ID:1 sind. d.h:
- alle die gar keine Zuordnung haben (nicht in der book_contains object auftauchen)
- alle die in Buch ID:2 sind aber nicht gleichzeitig auch in Buch ID:1

Im Beispiel sind das die Objekte: 7, 17

Meine Abfrage funktioniert, bin mir aber nicht sicher ob man das evtl. viel einfacher lösen kann. Das ganze wird in einer Ajax-Anwendung angewandt und ist aufgrund der großen Datenmenge in der DB nicht ganz so fix:

Code:
SELECT  o.id, o.title FROM object AS o 
LEFT JOIN book_contains_object AS bco ON bco.object_id = o.id 
WHERE o.[andere Bedingung] AND (bco.book_id = '2' OR bco.book_id IS NULL) 
AND o.id NOT IN
(
	SELECT o.id FROM object AS o 
	INNER JOIN book_contains_object AS bco ON bco.object_id = o.id 
	WHERE o.[andere Bedingung] AND bco.book_id = '1'
)
nicht in Buch ID:1 ist in dem Fall das selbe wie: alle aus Buch ID:2 (-> weil es nur zwei Bücher gibt).
Mit der Sub-Select hole ich mir die ids von allen Objekten die in Buch ID:1 sind und
schließe die in der außeren Abfrage aus.
geht das nicht einfacher? oder kann man das nur so machen????

habe folgenden Ansatz von jemand bekommen:
Code:
SELECT * FROM book_contains_object b1
LEFT JOIN book_contains_object b2
ON b1.object_id = b2.object_id
AND b1.book_id <> b2.book_id;
...also die Zuordnungstabelle mit sich selbst verknüpfen,
aber das haut so auch nicht hin...

i werd narrisch!
bin für jeden hinweis dankbar
joerg

Geändert von bitwurst (21.08.2008 um 11:38:16 Uhr)
Mit Zitat antworten
  #2  
Alt 24.08.2008, 10:04:57
bitwurst bitwurst ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 51
Beiträge: 30
AW: Zuordnungstabelle n:m, Abfrage: in Zuordnung A aber nicht gleichzeitig in B

schade dass mir da keiner helfen kann....

das muss doch ein relativ normales 'problem' sein. gib mir nur die, die eine Zuordnung zu A haben aber nicht auch gleichzeit zu B. ich steh wirklich auf dem schlauch...
Mit Zitat antworten
  #3  
Alt 27.08.2008, 11:46:37
bitwurst bitwurst ist offline
Anfänger
 
Registriert seit: Aug 2008
Alter: 51
Beiträge: 30
AW: Zuordnungstabelle n:m, Abfrage: in Zuordnung A aber nicht gleichzeitig in B

ich bekomms einfach nicht hin...

bevor es in MySQL Subqueries gab muss das doch auch möglich gewesen sein.

hier ein anderes beispiel:


PROJEKT
id | title
---------
1 | projekt A
2 | projekt B


MITARBEITER
id | name
-----------
1 | sepp
2 | olga
3 | hans
4 | anna

PROJEKT_MITARBEITER
pid | mid
1 | 1 (sepp)
1 | 3 (hans)
1 | 4 (anna)
2 | 1 (sepp)
2 | 2 (olga)
2 | 4 (anna)


wie findet man raus welche Mitarbeiter NUR am Projekt B arbeiten und
sonst an keinem Projekt --> olga

hat denn keiner eine Idee

j.
Mit Zitat antworten
  #4  
Alt 27.08.2008, 14:41:31
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Zuordnungstabelle n:m, Abfrage: in Zuordnung A aber nicht gleichzeitig in B

Zitat:
Zitat von bitwurst Beitrag anzeigen
bevor es in MySQL Subqueries gab muss das doch auch möglich gewesen sein.
Nein, in SQL war noch nie alles möglich. Vielleicht musst Du für solch eine Abfrage Deine Datenstruktur umbauen.

Geändert von feuervogel (27.08.2008 um 14:41:47 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SELECT Abfrage nur mit gefüllten Werten Skyman MySQLi/PDO/(MySQL) 0 25.10.2007 00:01:50
MySQL Abfrage mit PHP darstellen? Trivio MySQLi/PDO/(MySQL) 1 18.07.2007 21:05:13
Alphabet Abfrage Daemonium PHP Grundlagen 7 28.09.2006 18:43:03
Benötige Hilfe für dyn. Abfrage mittles PHP Trialrider PHP für Fortgeschrittene und Experten 70 09.10.2003 11:08:56
select feld mit if abfrage? Silencer PHP für Fortgeschrittene und Experten 3 20.11.2002 10:34:59


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:15:52 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt