Que font les opérateurs * = et * dans T-SQL?

Dupliquer possible:
SQL: Que signifie = *?

Je passe en revue un code hérité et j'ai trouvé une requête comme celle-ci:

SELECT * from foo_table, bar_Table where foo_table.id *= bar_table.fac_id 

Que fait l'opérateur * =?

C'est la manière ancienne et non recommandée de spécifier les jointures de table.

L'équivalent moderne de ce que vous voyez serait:

 SELECT * FROM foo_table LEFT JOIN bar_Table ON foo_table.id = bar_table.fac_id 

Je crois que c'est une manière à l'ancienne de faire reference aux jointures intérieure et extérieure gauche et droite. Voici un article à ce sujet, et il est obsolète:

http://blogs.technet.com/wardpond/archive/2008/09/13/deprecation-of-old-style-join-syntax-only-a-partial-thing.aspx#3123714

Ils sont LEFT OUTER JOIN et RIGHT OUTER JOIN . Ce qui m'échappe en ce moment.

Est comme une jointure externe gauche ou une jointure externe droite dans pl-sql.

C'est l'ancienne façon de faire des jointures. "* =" signifie "jointure externe gauche".

Cela signifie replace ce code immédiatement car il n'est pas garanti de donner des résultats précis, même depuis SQL Server 2000. Parfois, au lieu d'une jointure externe, SQL Server l'interprète comme une jointure croisée. C'est un code dangereux et incorrect qui a été déprécié.