![](/img/trans.png)
[英]How do I select rows in table (A) sharing the same foreign key (itemId) where multiple rows in table have the values in table B
[英]How do I SELECT only rows from table b that have all the same values for a given column per foreign key?
我有一張只有 ID 的表。 另一個具有 ID 和其他幾個列的表。 一個這樣的專欄是[set],供參考。
我正在嘗試僅對 table2 中的 ID 構建連接查詢,這些 ID 對於列 [set] 中的每一行具有相同的值,而不僅僅是在 [set] 中具有重復值的 ID 加上另一個不同的值。 因此,table2 中的每個 ID 都可以有多個行。
表格1
[ID] |
---|
a1 |
a2 |
表2
[ID] | [操作] | [放] |
---|---|---|
a1 | 22 | 切 |
a1 | 21 | 切 |
a2 | 23 | 切 |
a2 | 25 | 切 |
a2 | 24 | 片 |
在給定的示例中,“a2”不符合條件,因為列 [set] 中的值並不完全相同。
我的查詢不起作用。
SELECT DISTINCT(A.ID)
FROM TABLE1 A
INNER JOIN TABLE2 B ON A.ID = B.ID
GROUP BY A.ID, B.SET
HAVING COUNT(DISTINCT(B.SET)) =1
您按id
和set
分組,因此根據每個組中的定義, set
將只有一個值。 從group by
子句中刪除它,你應該沒問題。 另外,並不是因為您按id
分組,所以您不需要distinct
:
SELECT A.ID -- Distinct removed. It's not wrong, just redundant
FROM TABLE1 A
INNER JOIN TABLE2 B ON A.ID = B.ID
GROUP BY A.ID -- Grouping by b.set removed
HAVING COUNT(DISTINCT(B.SET)) = 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.