[MySQL] Left join et tables dérivées

Left join et tables dérivées [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 14-02-2005 à 15:32:59    

Hello :)
 
J'ai besoin de faire un left join sur une subquery mais ca a pas l'aire de marcher sur mon MySql 4.1.8.
 
Marche pas (simplifié pour l'exemple) :
select cht1, cht2
from table1 as t1  
left join (
    select cht2 from table2
  ) as t2 on t1.id = t2.id
 
Marche :
select cht1, cht2
from  
  table1 as t1,  
  (select cht2 from table2) as t2  
where t1.id = t2.id
 
Comment faire un left join sur une subquery ?

Reply

Marsh Posté le 14-02-2005 à 15:32:59   

Reply

Marsh Posté le 14-02-2005 à 15:57:13    

subquery = select imbriqué ?
 
Sincèrement je n'ai jamais vu ce genre de syntaxe...
Pour ma part un select imbriqué ca se passe uniquement dans la clause where.
Et si on fait un peu trop de left join avec MySql c'est parce que ca fait très peu de temps qu'on peu faire des select imbriqué. (Pour la recherche de valeur null notamment)

Reply

Marsh Posté le 14-02-2005 à 17:59:16    

Oui select imbriquer, c'est pour une requete sioux et j'ai pas trop le choix :( Il y a pas un moyen ??

Reply

Marsh Posté le 14-02-2005 à 18:13:31    

plusieurs syntaxe possible
 
SELECT ...
FROM (SELECT ... FROM ... WHERE ...);
 
ou  
 
SELECT ...
FROM ...
WHERE ... IN/NOT IN / EXISTS / NOT EXISTS / =,<>,>,< / ... (SELECT ... FROM ... WHERE ...);
 
j'espère que ça a pu t'aider ...

Reply

Marsh Posté le 14-02-2005 à 18:17:20    

heu je sais que ca marche comme ca :) Merci quand meme ;)
Je veux faire des jointures gauches avec des subqueries.

Reply

Marsh Posté le 15-02-2005 à 10:14:45    

Salut seb666,
Tu ne veux pas nous dire plutôt le but de la manoeuvre ?
 
Il me semble que les subqueries servent à parer la syntax join. La première étant plus élégante, la seconde étant compatible avec les anciennes version de MySql
 
Donc pour moi, c'est soit l'un soit l'autre, pourquoi faire les 2 en même temps ?
 
http://dev.mysql.com/doc/mysql/en/ [...] eries.html


Message édité par rompi le 15-02-2005 à 10:15:06
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed