php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.03.2009, 13:05  
Neuer Benutzer
 
Registriert seit: 24.03.2009
Beiträge: 7
Funstar befindet sich auf einem aufstrebenden Ast
Standard Völlig verschachtelt

Hallo liebe Foren-Teilnehmer,

ich habe da ein SQL-Abfrage-Problem und das einzige was erfolgreich verschachtelt ist, sind die Gedanken in meinem Kopf. Ich hoffe ihr könnt mich entwirren. Ich habe zwei Tabellen:

Alpha
Feld "game_id"
Feld "aktiv"

Beta
Feld "user_id"
Feld "game_id"

In der Tabelle Beta wird immer eingetragen, wenn ein User an einem Spiel teilgenommen hat. Also eine neue Zeile mit der user_id und game_id drin eben. Ich benötige nun eine Abfrage, welche mir anzeigt welche Spiele derzeit aktiv sind (Tabelle Alpha), an denen der User aber noch nicht teilgenommen hat (KEIN Eintrag in Beta für user_id und game_id zusammen in einer Zeile).

SELECT game_id FROM Beta WHERE user_id = $userid AND NOT (SELECT game_id FROM Alpha WHERE aktiv = 1);

Geht das so?
Funstar ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.03.2009, 13:21  
there's only one psycho
 
Benutzerbild von PsychoEagle
 
Registriert seit: 21.08.2007
Beiträge: 1.283
PHP-Kenntnisse:
Anfänger
PsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer MenschPsychoEagle ist ein sehr geschätzer Mensch
PsychoEagle eine Nachricht über ICQ schicken PsychoEagle eine Nachricht über Skype™ schicken
Standard

Dürfte funktionieren, ob wirklich weiß ich nun nicht:
Code:
SELECT
  `a`.`game_id` AS `game_id` 
FROM
  `Alpha` AS `a`
WHERE
  (
   SELECT COUNT(`b`.`game_id`)
   FROM   `Beta` AS `b`
   WHERE  `a`.`game_id` = `b`.`game_id` AND 
          `b`.`user_id` = $userid
  ) = 0 AND
  `aktiv` = 1;
Gibt sicherlich noch andere (und evtl. bessere) Lösungen

Grüße
Das Psy
__________________
"Weaseling out of things is important to learn. It's what separates us from the animals ... except the weasel." (Homer J. Simpson)

Geändert von PsychoEagle (25.03.2009 um 13:27 Uhr).
PsychoEagle ist offline   Mit Zitat antworten
Alt 25.03.2009, 13:22  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Z.B.
Code:
SELECT 
    game_id 
FROM 
    beta
WHERE
    game_id NOT IN(
        SELECT 
            game_id 
        FROM 
            alpha 
        WHERE 
            aktiv = 1
        AND
            user_id = $user_id
    );
__________________
Gruss
L
lazydog 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
Mein PHP Switch spinnt völlig Nordhesse28 PHP Tipps 2009 11 05.01.2009 05:58
ERLEDIGT - IE tanzt völlig aus der reihe web2 HTML, Usability und Barrierefreiheit 5 05.05.2006 00:01
Knifflige Abfrage oder völlig verqueres Design? Anotherone Datenbanken 4 02.03.2006 12:07
Smarty verschachtelt snatch-ic PHP Tipps 2006 16 28.02.2006 20:54
Völlig niveaulos md5hash Off-Topic Diskussionen 4 27.01.2006 19:48
hallo, bin völlig neu hier und blind . . . ?! PHP Tipps 2005-2 4 05.10.2005 15:34


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