Exécuter une requête SQL comportant une relation (JOIN)

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Produit : 4D ODBC Driver 2004  ·  Plateforme : Mac & Win


En essayant d'exécuter la requête suivante via le driver ODBC, pour lire le contenu des tables 4D vers MS Query, une erreur de syntaxe est retournée.

 
Sélectionnez
SELECT titles.title_id, titles.title, sales.qty, sales.price
FROM titles 
RIGHT OUTER JOIN sales
ON titles.title_id=sales.title_id


En fait, les commandes "RIGHT OUTER JOIN " et "LEFT OUTER JOIN" sont des commandes ANSI.

Voir la documentation suivante (dont suit un extrait):
http://www4.dogus.edu.tr/bim/bil_kay/dbase/mssql65/ch11.htm#Heading12
---------------------
Outer Joins

You can restrict rows from one table while allowing all rows from another table as your result set by using outer joins. One of the most common uses for this type of join is to search for orphan records. You can create an outer join statement using either SQL Server or ANSI syntax. The outer join operators and keywords are as follows:

SQL Server syntax:
   >*= Includes all rows from the first table and only the matching rows in the second table (left outer join).
   >=* Includes all rows from the second table and only the matching rows in the first table (right outer join).

ANSI syntax:
   LEFT OUTER JOIN Includes all rows from the first table and only the matching rows in the second table.
   RIGHT OUTER JOIN Includes all rows from the second table and only the matching rows in the first table.
   FULL OUTER JOIN Includes all non-matching rows from both tables.
---------------------

Donc, la syntaxe SQL doit être :

Pour un RIGHT OUTER JOIN

 
Sélectionnez
SELECT titles.Title_id, titles.Title, sales.qty, sales.Price 
FROM sales, titles 
WHERE titles.Title_id =* sales.Title_id

Pour un LEFT OUTER JOIN

 
Sélectionnez
SELECT titles.Title_id, titles.Title, sales.qty, sales.Price
FROM sales, titles
WHERE titles.Title_id *= sales.Title_id

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2005 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.