2014-02-24 42 views
1

我有一個MySQL(交易)表,其中包括這2列如何選擇一個按鍵都行,如果任何行中包含該關鍵字

Col1中指定的值=帳戶 col2的= TRANS_TYPE

有對於給定的帳戶可以是多行。

如果該帳戶的任何行具有transaction_type =「A」,那麼我想要一個返回任何帳戶(按帳戶分組)的所有行的select。

因此,數據可能看起來像這樣

 
acct  trans_type  sku 

102   B    6001 

102   C    6220 

103   A    6006 

103   C    6003 

103   D    6007 

104   A    6006 

104   B    6007 

在這個例子中,accts 103和104具有與反式類型的 「A」 的行。因此,查詢應該返回acct 103的所有行和acct 104的所有行。

這對於單個select是否可能?

我想我需要一個嵌套的select語句,但我從來沒有這樣做,不能弄明白。

謝謝。

回答

0

試試這個SQL語句:

SELECT * 
FROM table 
WHERE acct IN (
    SELECT acct 
    FROM table 
    WHERE trans_type = 'A' 
) 
1

首先,你選擇的是,在子查詢有trans_type = 'A'所有acct
,然後使用簡單連接

SELECT t.* 
FROM mytable t join mytable u 
on t.acct = u.acct and t.trans_type = 'A' 
0

這個.......

SELECT * FROM table_name的地方acct in(select table from table_name where trans_type ='A')

0

這將工作獲取的所有行與acct小號

SELECT acct, trans_type, sku 
    FROM table 
WHERE acct IN (
      SELECT DISTINCT acct 
       FROM table 
       WHERE trans_type = 'A'); 
相關問題