2017-01-17 3 views
1

を選択:サブクエリで私はその文を持っている

select Imie as imie, Nazwisko as nazwisko, null, (SELECT id_adresu as adres from united_warehouse.adres 
where adres= (SELECT CONCAT(Ulica,' ', Nr_domu, ' ', Nr_mieszk, ' ', Miejscowosc) FROM Anna_database.osoba where Imie=imie)) as adres, 
    Kod_poczt as kod_poczt, Kraj as id_kraju, Nr_tel as nr_tel from Anna_database.osoba; 

enter image description here

私はCONCAT(Ulica,' ', Nr_domu, ' ', Nr_mieszk, ' ', Miejscowosc) i'amを含む行を選択したいです'osoba'テーブルから選択すると、adres.adresテーブルのように同じ文字列になります。

残念ながら、それは私にエラーコード:1242を返します。サブクエリは1行以上を返します。

+1

こんにちは。あなたが書いたサブクエリは1つ以上のレコードを返すので、これをsomカラムに入れる必要があります。 –

答えて

1

を取得するSELECT文が複数の値を返すことがためにあなたが制限1を使用することができますので、あなたが選択あなたの内側の行、より多くを得ることを言います。それはすべて、クエリの最終結果に必要なものに依存します。

ケース-1

あなただけの1行は、あなたのサブクエリによって返されるしたい場合は、あなたが

ような何かを行うことができますケース-2

select Imie as imie, Nazwisko as nazwisko, null, (SELECT id_adresu as adres from united_warehouse.adres 
where adres= (SELECT TOP(1) CONCAT(Ulica,' ', Nr_domu, ' ', Nr_mieszk, ' ', Miejscowosc) FROM Anna_database.osoba where Imie=imie)) as adres, 
Kod_poczt as kod_poczt, Kraj as id_kraju, Nr_tel as nr_tel from Anna_database.osoba; 

ような何かを行うことができます
select Imie as imie, Nazwisko as nazwisko, null, (SELECT id_adresu as adres from united_warehouse.adres 
where adres in (SELECT CONCAT(Ulica,' ', Nr_domu, ' ', Nr_mieszk, ' ', Miejscowosc) FROM Anna_database.osoba where Imie=imie)) as adres, 
Kod_poczt as kod_poczt, Kraj as id_kraju, Nr_tel as nr_tel from Anna_database.osoba; 
1

エラーが1つの結果しか

select 
     Imie as imie 
     , Nazwisko as nazwisko 
     , null 
     , (SELECT id_adresu as adres 
      from united_warehouse.adres 
      where adres = (SELECT CONCAT(Ulica,' ', Nr_domu, ' ', Nr_mieszk, ' ', Miejscowosc) 
          FROM Anna_database.osoba 
          where Imie=imie 
          limit 1)) as adres 
     , Kod_poczt as kod_poczt 
     , Kraj as id_kraju 
     , Nr_tel as nr_tel 
    from Anna_database.osoba; 
関連する問題