Question

Je conserve du code qui utilise un opérateur *= dans une requête sur une base de données Sybase et je ne trouve pas de documentation à ce sujet.Est-ce que quelqu'un sait ce que fait *= ?Je suppose que c'est une sorte de jointure.

select * from a, b where a.id *= b.id

Je n'arrive pas à comprendre en quoi cela est différent de :

select * from a, b where a.id = b.id
Était-ce utile?

La solution

Depuis http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/mig_gde160.htm:

Tables intérieures et extérieures

Les termes table externe et table interne décrivent le placement des tables dans une jointure externe :

  • Dans une jointure gauche, la table externe et la table interne sont respectivement les tables gauche et droite.La table externe et la table interne sont également appelées respectivement tables préservant les lignes et fournissant des valeurs nulles.

  • Dans une jointure à droite, la table externe et la table interne sont respectivement les tables de droite et de gauche.

Par exemple, dans les requêtes ci-dessous, T1 est la table externe et T2 est la table interne :

  • T1 gauche rejoint T2
  • T2 à droite rejoindre T1

Ou, en utilisant la syntaxe Transact-SQL :

  • T1 *=T2
  • T2 =* T1

Autres conseils

Cela signifie une jointure externe, un simple = signifie une jointure interne.

*= is LEFT JOIN and =* is RIGHT JOIN.

(ou vice versa, j'oublie toujours puisque je ne l'utilise plus et que Google n'est pas utile lors de la recherche de *=)

Bien sûr toi devrait écrivez-le de cette façon :

SELECT *
FROM a
LEFT JOIN b ON b.id=a.id

La syntaxe a,b est mauvaise.

Syntaxe ANSI-82

select 
    * 
from 
    a
  , b 

where 
     a.id *= b.id

ANSI-92

select 
    * 
from 
   a
  left outer join b 
      on a.id = b.id
select * from a, b where a.id = b.id

Nécessite qu'il existe une ligne dans laquelle b.id = a.id afin de renvoyer une réponse

select * from a, b where a.id *= b.id

Remplira les colonnes de b avec des valeurs nulles lorsqu'il n'y avait pas de ligne dans b où b.id = a.id.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top