簡體   English   中英

我如何 SELECT 只有表 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

您按idset分組,因此根據每個組中的定義, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM