Domanda

Sto mantenendo del codice che utilizza un operatore *= in una query su un database Sybase e non riesco a trovare la documentazione al riguardo.Qualcuno sa cosa fa *=?Presumo che si tratti di una sorta di unione.

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

Non riesco a capire come questo sia diverso da:

select * from a, b where a.id = b.id
È stato utile?

Soluzione

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

Tavoli interni ed esterni

I termini tabella esterna e tabella interna descrivono il posizionamento delle tabelle in un join esterno:

  • In un left join, la tabella esterna e la tabella interna sono rispettivamente le tabelle sinistra e destra.La tabella esterna e la tabella interna vengono anche denominate rispettivamente tabelle di conservazione delle righe e tabelle di fornitura null.

  • In un join destro, la tabella esterna e la tabella interna sono rispettivamente le tabelle destra e sinistra.

Ad esempio, nelle query seguenti, T1 è la tabella esterna e T2 è la tabella interna:

  • T1 a sinistra si unisce a T2
  • T2 a destra unisciti a T1

Oppure, utilizzando la sintassi Transact-SQL:

  • T1 *= T2
  • T2 =* T1

Altri suggerimenti

Significa unione esterna, un semplice = significa unione interna.

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

(o viceversa, continuo a dimenticarlo visto che non lo uso più, e Google non è d'aiuto quando cerco *=)

Ovviamente tu Dovrebbe scrivilo in questo modo:

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

La sintassi a,b è malvagia.

Sintassi 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

Richiede che esista una riga in cui b.id = a.id per restituire una risposta

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

Riempirà le colonne da b con valori nulli quando non c'era una riga in b dove b.id = a.id.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top