Ich bin wahrscheinlich hier ganz dick.SQL-Abfrage: Zeilen erhalten, wo Spalten A in Tabelle A = Spalte A in Tabelle B
Ich habe ein Tabelle mit einer Liste von Reason-Codes in dem ‚Zugang‘ zu diesen Gründen wird begrenzt durch, ob oder ob nicht Spalt 1 oder 0 in.
ID | Category | Reason | Brand1 | Brand2 | Brand3
1 | Test | That | 1 | 1 | 0
2 | Test2 | This | 0 | 1 | 0
3 | Test3 | Mine | 0 | 0 | 1
Die Benutzertabelle
Username | Brand1 | Brand2 | Brand3
User1 | 1 | 1 | 0
Grundsätzlich sollte User1 nur die Gründe sehen können, nach denen sie eine 1 in der Benutzer-Tabelle in den Markenspalten haben, die eine 1 in der Spalte Marke in der Begründungstabelle haben.
Benutzer1 sollte nur den Grund ID 1 & 2 sehen können, weil sie eine 1 in Brand1 und 1 in Brand2 in der Benutzertabelle haben.
Ich möchte nur die Zeilen aus der Reasons-Tabelle zurückgeben, wobei der Benutzer in der Tabelle Users eine Übereinstimmung 1 in der entsprechenden 'Marke' Spalte hat.
heißt
Benutzer 1 zurückkehren sollte
ID | Category | Reason | Brand1 | Brand2 | Brand3
1 | Test | That | 1 | 1 | 0
2 | Test2 | This | 0 | 1 | 0
Wie würde ich dies in SQL, ich versuchte es mit OR ist in der WHERE-Anweisung zu schreiben, aber es war immer jede Zeile zurück. Es gibt insgesamt 7 Markenspalten.
Ich denke, ich übersehe hier etwas Einfaches aus über die Angelegenheit zu komplizieren.
Prost
Bitte fügen Sie das gewünschte Ergebnis anhand Ihrer Beispieldaten hinzu. –
Veröffentlichen Sie auch Ihre Aussage. Auch wenn Sie einfach jede Spalte auf Gleichheit hin vergleichen (zB 'WHERE A.Brand1 = B.Brand1 ODER A.Brand2 = B.Brand2'), sollte # 3 nicht erscheinen –
Wie sieht SQL aus? –