Ich versuche, einen Join zu erstellen, aber ich kann es nicht in MySQL arbeiten, ich weiß, dass es einen Weg geben muss.MySQL Join mit Ausnahme bestimmter Datensätze?
Ich habe zwei Tabellen: 1. Setting
und 2. User_Setting
(und natürlich User
aber das wird hier nicht benötigt werden).
Struktur
Setting.setting_id Setting.description Setting.value_type Setting.default_value User_Setting.user_id User_Setting.setting_id User_Setting.value
Ich möchte alle Setting
Datensätze auszuwählen, und User_Setting
zu verbinden, in dem ein Wert vorhanden ist. Klassische äußere Verbindung würde ich glauben?
Ich habe diese Anfrage:
SELECT `User_Setting`.`user_id`, `User_Setting`.`value`, `Setting`.`setting_id`, `Setting`.`default_value`, `Setting`.`value_type`, FROM `User_Setting` Right Join `Setting` ON `User_Setting`.`setting_id` = `Setting`.`setting_id` WHERE `User_Setting`.`user_id` IS NULL OR `User_Setting`.`user_id` = 1;
Aber das funktioniert nicht, wenn ein User
mit user_id
2 einen User_Setting
Datensatz vorhanden für ein bestimmtes setting_id
hat, aber die User
mit user_id
1 hat nicht nur, dass setting_id
gespeicherte Aufzeichnung ...
Hat eine Abfrage jemand, wo alle Einstellungen abgerufen werden, mit user_id
und value
NULL, wenn die User_Setting
Datensatz existiert nicht?
toll das funktioniert perfekt. Vielen Dank! – Ropstah