Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Forum 4D Documentations F.A.Q 4D Trucs & astuces Notes techniques 4D & SGBDR 4D & XML 4D & Web Livres 4D

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

Date de publication : 02/08/05

Par Stéphanie Tirtiat (Intl Tech Support)
 



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.
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
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
SELECT titles.Title_id, titles.Title, sales.qty, sales.Price
FROM sales, titles
WHERE titles.Title_id *= sales.Title_id



Valid XHTML 1.1!Valid CSS!

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

Responsable bénévole de la rubrique 4D : Elgo - Contacter par EMail :
Vos questions techniques : forum d'entraide 4D - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.