2016-10-17 9 views
1

Bankという名前のデータベース内のすべての株を検索したいとします。通常、複数の行が返され、名前と価格が表示されます。複数の行を返すようにクエリを調整して、 '1行のサブクエリが複数の行を返す'エラーを返す方法

<price> Bank of America 
<price> Bank of NewYork 
<price> Bank United 

しかし、私はsingle-row subquery returns more than one rowエラーが発生しています。

これは、サブクエリが複数の行を返すためです。だから私はメインのクエリを複数の列と行を表示します。

SELECT PRICE, STOCKNAME     
    from ALL_PRICES 
    WHERE STOCKNAME = (SELECT STOCKNAME 
     FROM ALL_STOCKS 
     WHERE STOCKNAME LIKE '%Bank%') 

ご迷惑をおかけして申し訳ありません。

+0

置き換える '=' IN' –

+4

は、サブクエリを取り除く 'と、あなたはすでにテーブル内stocknameを持っていますall_prices。 SELECT price、stockname from all_prices在庫名のように '%Bank%' –

答えて

1
SELECT PRICE, STOCKNAME     
    from ALL_PRICES 
    WHERE STOCKNAME in (SELECT STOCKNAME 
     FROM ALL_STOCKS 
     WHERE STOCKNAME LIKE '%Bank%') 

EDIT:

良い答え(クリスチャン・パーマーの礼儀):

SELECT PRICE, 
     STOCKNAME     
from ALL_PRICES 
WHERE STOCKNAME LIKE '%Bank%' 
+0

ああ、とても単純です。 JohnHCとJaydipJに感謝します。 – John

+0

@ジョン、上記のクリスチャン・パーマーのコメントは、さらに良い質問をしています。 – jarlh

関連する問題