簡體   English   中英

SQL - 選擇2行必須相同的行

[英]SQL - selecting rows where 2 rows must be the same

我對SQL很缺乏經驗。 我有一個看起來像這樣的表:

Columns:   A   B   C   D   E
           foo bar 1   2   3
           foo bar 4   5   6
           foo bar 7   8   9
           xyz abc 3   2   1
           xyz abc 6   5   4
           xyz abc 9   8   7

現在我希望能夠像這樣形成一個字符串:

"foo bar: 1   2   3   4   5   6   7   8   9"
"xyz abc: 3   2   1   6   5   4   9   8   7"

如果重要的話我還有一個A和B列的列表,我可以通過以下方式天真地使用:

Rs1 = SELECT * FROM PARENT_TABLE:
    for a, b in RS1
        String = a + b
        Rs2 = SELECT C, D, E FROM CHILD_TABLE WHERE A='a' AND B='b'
            for every row in Rs:
                String += C D E
        print String

無論如何都要這樣做而不必遍歷父表,然后在每一行上形成一個語句,從而迭代那個。 我錯過了明顯的解決方案嗎?

您想要查找聚合函數:

我是在沒有模式的實際知識的情況下編寫的,因此可能無法正常工作:

SELECT A || ' ' || B || ': ' || WM_CONCAT(D || ' ' || E || ' ' || F || ' ')
  FROM PARENT_TABLE PT 
  INNER JOIN CHILD_TABLE CT ON CT.A=PT.A AND CT.B=PT.B
  GROUP BY (PT.A,PT.B)

如果您需要確保至少包含2行,請添加:

  HAVING COUNT(PT.A,PT.B)>=2

如果你的表中包含20行,則它們是相同的

然后你可以檢索數據

只需寫作

select * from tablename where column_name='common value of that column';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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