php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.02.2012, 15:48  
Erfahrener Benutzer
 
Registriert seit: 15.04.2004
Beiträge: 126
pcschröda
Standard Left join

Hallo,

Ich habe zwei Tabellen nach folgendem Schema:

Tabelle 1:

ID | Name

1 | Bierfest
2 | Weinfest


Tabelle 2:

ID | Ort

17 | München
22 | Freiburg


Was ich versuche:

Ziehe alle Werte aus Tabelle 1, deren ID nicht in Tabelle 2 vorkommen, außer es handelt sich um die aktuell verwendete ID. Diese ist zum Zeitpunkt der Abfrage in einer Variable, z.B. $id, abgelegt.

Der erste Teil ist mit einem LEFT JOIN relativ leicht zu erledigen, den zweiten bekomme ich nicht hin.

Irgendwelche Gedankenansätze?


Viele Grüße,

pcschröda
pcschröda ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.02.2012, 16:00  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Der erste Teil ist mit einem LEFT JOIN relativ leicht zu erledigen, den zweiten bekomme ich nicht hin.

Irgendwelche Gedankenansätze?
Rückfrage: Wie sind Deine Ansätze?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.02.2012, 16:02  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Code:
SELECT the, stupid, fieldsOf
FROM theTable
   JOIN theOtherTable USING ( id )
Read Me: http://dev.mysql.com/doc/refman/5.1/de/join.html
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 13.02.2012, 16:17  
Erfahrener Benutzer
 
Registriert seit: 15.04.2004
Beiträge: 126
pcschröda
Standard

Mein Ansatz war:

SELECT * FROM table1 LEFT JOIN table2 ON table2.ID = table1.ID WHERE table2.ID IS NULL OR table2.ID = $id;
pcschröda ist offline   Mit Zitat antworten
Alt 13.02.2012, 16:21  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

theoretisch:
Code:
SELECT * FROM table1 JOIN table2
   USING ( id )
WHERE table2 IN ( NULL, $id )
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 13.02.2012, 16:23  
Erfahrener Benutzer
 
Registriert seit: 13.01.2012
Beiträge: 256
PHP-Kenntnisse:
Anfänger
akretschmer befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von pcschröda Beitrag anzeigen
Mein Ansatz war:

SELECT * FROM table1 LEFT JOIN table2 ON table2.ID = table1.ID WHERE table2.ID IS NULL OR table2.ID = $id;
- Select * bitte ganz schnell vergessen, zumindest in produktivem code
- warum kein inner join?
- deine Abfrage liefert nicht das, was du im ersten posting wolltest
- ich sehe ein UNION, welches Du noch nicht siehst

Andreas
akretschmer ist gerade online   Mit Zitat antworten
Alt 13.02.2012, 16:42  
Erfahrener Benutzer
 
Registriert seit: 15.04.2004
Beiträge: 126
pcschröda
Standard

- Okay
- Weil LEFT JOIN zunächst das zu tun scheint, was ich möchte
- Daher auch meine Frage hier im Forum
- Werde ich mir anschauen
pcschröda ist offline   Mit Zitat antworten
Alt 13.02.2012, 16:55  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Ach nu hab ich's geschnallt

Code:
SELECT * FROM table1
WHERE 
   id NOT IN ( SELECT id FROM table2 )
      OR
   id = $id
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 13.02.2012, 17:03  
Erfahrener Benutzer
 
Registriert seit: 15.04.2004
Beiträge: 126
pcschröda
Standard

Danke für Eure Mühe, ich werde nachher versuchen, das Gelernte in meinen Code zu inkorporieren.


Viele Grüße,

pcschröda
pcschröda 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
[Erledigt] left join Funktioniert mit PHP nicht themonk PHP Einsteiger 13 12.08.2011 12:45
[Erledigt] Umkreissuche in PHP 5.3 geht nicht mehr mmoeckli PHP Einsteiger 8 24.07.2011 23:21
DB Abfrage mit 2 LEFT JOIN und 2 WHERE BEDINGUNGEN - oder einfacher? MeckiDerIgel Datenbanken 4 24.07.2011 18:27
MySQL - LEFT JOIN Query aus mehreren Tabellen ~fransen~ Datenbanken 13 28.01.2011 18:49
[Erledigt] Left Join 3 Tabellen mykosch Datenbanken 5 16.09.2010 14:51
Problem mit Mysql Left Join Ambfrage pro-tech Datenbanken 11 22.05.2010 10:59
[Erledigt] left join problem Bernd-m Datenbanken 9 24.08.2009 13:52
[Erledigt] LEFT JOIN Daten ausgeben bei 1:n Beziehung Asipak PHP Tipps 2009 11 01.08.2009 15:27
JOIN und LEFT JOIN verbinden? Dynamite53 Datenbanken 8 15.05.2009 15:16
Persistence Framework #Avedo Software-Design 37 28.03.2009 17:32
[Erledigt] mit einer CHECKBOX feld nach mehreren wörtern durchsuchen taurus Datenbanken 20 01.12.2008 10:49
Select / Left Join Performance mark007q Datenbanken 4 17.11.2008 15:14
[Erledigt] Left join und inner join stefanjann Datenbanken 7 16.10.2008 15:45
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
[solved] LEFT JOIN - #1066 - Not unique table/alias moose Datenbanken 6 12.12.2006 06:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
erste nicht benutzte id in tabelle

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