0
votes

Comment accéder à la colonne de la sous-requête

  select u.phone, u.email , t.to_address (error from this)
  from user_accounts u 
  where u.id 
  in 
   (select w.user_id 
   from wallets w 
   where w.id 
   in 
     (
     select t.wallet_id 
     from withdraws t 
     where t.to_address 
     in 
     ('1F6o1fZZ7', 'pJDtRRnyhDN')))
I want to get the column to_address from subquery. How can I get it in postgresql?I try assign 'AS' for subquery but it didn't work

0 commentaires

3 Réponses :


0
votes

Utilisez Joindre avec toute la table, vous n'avez besoin de sous-requête

 select u.phone, u.email , ww.to_address 
 from user_accounts u  left join wallets w  on u.id=w.user_id
  left jon withdraws ww on w.id=ww.wallet_id
where ww.to_address in ('1F6o1fZZ7', 'pJDtRRnyhDN')


0 commentaires

1
votes

Un joint renvoie une table de résultats construite à partir de données provenant de plusieurs tables. Vous pouvez également récupérer la même table de résultats à l'aide d'une sous-requête. Une sous-requête est simplement une instruction SELECT dans une autre instruction SELECT.

select u.phone, u.email , t.to_address (
 from user_accounts u 
INNER JOIN wallets w  ON u.id= w.user_id 
INNER JOIN withdraws t ON t.wallet_id =w.id 
  where t.to_address  in ('1F6o1fZZ7', 'pJDtRRnyhDN')


0 commentaires

0
votes

Vous ne pouvez pas réaliser ce que vous essayez d'utiliser sous-requête. Lorsque vous souhaitez des enregistrements de différentes tables et qu'ils ont une colonne unique en commun qui les relie, vous devez le faire à l'aide d'un joindre .

parfois (pas tous les cas) dans peut entraîner des problèmes de performances, vous devez donc envisager de savoir plus sur différents types de joints ( https://www.w3schools.com/sql/sql_join.asp )

Vérifiez le lien de comparaison: rejoindre interne Versus Versus faisant un lieu où dans la clause

sur la requête: xxx


2 commentaires

Vous avez une référence à une question de performance SQL Server, mais cette question est étiquetée Postgres.


De plus: non pas dans la condition ne peut être réécrite comme une jointure. Ce sont deux choses différentes