What is this operand (*= star-equals) in SQL server 2000?

前端 未结 2 1376
旧时难觅i
旧时难觅i 2021-01-03 22:23

I have a query that I pulled from ms sql 2000 and plugged into a MySql query. It did not work, MySql would choke on the *= operator. In this example I have two varchar colum

相关标签:
2条回答
  • 2021-01-03 22:37

    In MSSQL, the *= convention in the WHERE clause indicates a join. So what you are really seeing is a LEFT OUTER JOIN between tbl1 and tbl2 on person_name where all the values from tbl1 and the matching values on tbl2 will be returned.

    0 讨论(0)
  • 2021-01-03 22:51

    In SQL 2000 this was used as a LEFT OUTER JOIN

    =* is a RIGHT OUTER JOIN

    Your query could be:

    SELECT 
      * 
    FROM 
      tbl1 a LEFT OUTER JOIN tbl2 b ON a.person_name = b.person_name
    WHERE 
      a.id = b.id
    

    As stated here:

    Specifies an outer join using the nonstandard product-specific syntax and the WHERE clause. The *= operator is used to specify a left outer join and the =* operator is used to specify a right outer join.

    0 讨论(0)
提交回复
热议问题