RPG-Maker Quartier
http://forum.rpg2000.4players.de/phpBB3/

SQL Abfragen Problem...
http://forum.rpg2000.4players.de/phpBB3/viewtopic.php?f=9&t=98094
Seite 1 von 1

Autor:  ryg [ Do Feb 09, 2012 11:02 ]
Betreff des Beitrags:  SQL Abfragen Problem...

Hi, ich bastle ein kleines Tool mit dem ich mir vorher abgespeicherte Codes ansehen kann um diese zu Prüfen und als gelesen markieren kann so das sie nicht mehr angezeigt werden.

Dazu aber erst einmal der Tabellenaufbau:
Tabelle mc_codes
Spalten: id, mobcode, owner, active

Tabelle mc_mcuser
Spalten: id, mcid, userid


Folgende Problemstellung bei der Query habe ich allerdings, da es wirklich nur eine Query sein sollte:
Wenn ich einen Code angeschaut habe wird in der mc_mcuser Tabelle eine Zeile hinzugefügt bei der mcid (code ID) und userid entsprechend mit den IDs gefüllt werden. Das ist auch an sich kein Ding^^

Allerdings brauche ich dann eine Query die es mir ermöglicht das Feld 'mobcode' aus der mc_codes Tabelle anzuzeigen, sofern es dazu KEINEN Eintrag in der mc_mcuser Tabelle gibt, der mit diesem Mobcode und der Jehweiligen UserID bestückt ist. Das beste wäre, wenn das ganze in einer einzigen Query untergebracht werden könnte...

Leider habe ich dahingehend keinen Ansatz, da ich jedesmal dann nen SQL Fehler bekomme, wenn dieser Eintrag nicht existiert.

Hat einer von euch eine Idee wie ich das ganze lösen könnte?

Danke schon mal

Autor:  Xardas der Dunkle [ Do Feb 09, 2012 18:10 ]
Betreff des Beitrags:  Re: SQL Abfragen Problem...

Es gibt zwei Möglichkeiten, entweder mit einem SubQuery oder mit einem LEFT JOIN.

Code:
SELECT      mc_codes.*
FROM        mc_codes
WHERE       (SELECT COUNT(*) FROM mc_mcusers WHERE mc_mcusers.mcid = mc_codes.id LIMIT 1) = 0


Ich finde die Left-Join Variante schöner :D:
Code:
SELECT      mc_codes.*
FROM        mc_codes
LEFT JOIN   mc_mcuser ON mc_mcusers.mcid = mc_codes.id
WHERE       mc_mcuser.mcid IS NULL

Autor:  ryg [ Di Jan 20, 2015 9:56 ]
Betreff des Beitrags:  Re: SQL Abfragen Problem...

Ich habe eine andere Lösung gefunden... Scheint sogar bisher sehr gut zu funktionieren.

Code:
SELECT mobcode FROM `mc_codes` WHERE id NOT IN (SELECT DISTINCT mcid FROM `mc_mcuser` WHERE userid=" & UID & ") AND NOT active=0

Autor:  BlackSoul [ So Feb 22, 2015 11:33 ]
Betreff des Beitrags:  Re: SQL Abfragen Problem...

Xardas der Dunkle hat geschrieben:
Ich finde die Left-Join Variante schöner :D:
Code:
SELECT      mc_codes.*
FROM        mc_codes
LEFT JOIN   mc_mcuser ON mc_mcusers.mcid = mc_codes.id
WHERE       mc_mcuser.mcid IS NULL


Würde ich zustimmen. Da sparst du dir eine Unterabfrage mehr.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/