我可能在這裏完全很厚。SQL查詢:獲取表A中列A =表B中列A的行
我有在原因代碼列表的表,「接入」到這些原因,通過列是否在具有1或0的限制。
ID | Category | Reason | Brand1 | Brand2 | Brand3
1 | Test | That | 1 | 1 | 0
2 | Test2 | This | 0 | 1 | 0
3 | Test3 | Mine | 0 | 0 | 1
用戶表
Username | Brand1 | Brand2 | Brand3
User1 | 1 | 1 | 0
基本上User1應該只能看到他們在品牌列的用戶表中有1的原因,他們在原因表的品牌列中有1。
User1應該只能看到原因ID 1 & 2,因爲它們在用戶表中具有Brand1中的1和Brand2中的1。
我只希望從原因表中返回行,因此用戶表中的用戶在相應的「品牌」列中具有匹配1。
即
用戶1應該返回
ID | Category | Reason | Brand1 | Brand2 | Brand3
1 | Test | That | 1 | 1 | 0
2 | Test2 | This | 0 | 1 | 0
我將如何在SQL得到這個,我試圖在WHERE語句或寫作,但它總是返回每一行。共有7個品牌專欄。
我想我忽略了一件簡單的事情,因爲這件事情太複雜了。
乾杯
請根據您的樣品數據添加期望的結果。 –
也發佈您的聲明。即使如果你簡單地比較每列是否相等(例如'WHERE A.Brand1 = B.Brand1 OR A.Brand2 = B.Brand2'),#3不應該出現 –
SQL的外觀如何? –