La Pause Café du Forum Programmation

InSiderZ a rendu l’antenne :o
merci à mes auditeurs de cluclu (ils se reconnaiterons) ainsi qu’à tou(te)s mes fans [:shy]

Je ne me sers jamais du mode "Debug" :o

:MDR

Bonuit :slight_smile: !

Bonne grasse mat’ à ceux qui en auront une

Demain matin : cours de Windows 2003 kiserari1paskedejatouvu
(Remarque, je pourrais ptet preumser comme ça ^^)

:sleep:

tout vu ? :??:

balaise :oui:

Preums :ane:

benj > Tout = Tout ce que le prof nous apprends

:hello:
Ben ya eu du boulot ici depuis hier
Mandarounet> sympa e tuorial :super: on apprend des choss, je verrais ça de plus près undi
jmgchouchou> :smiley: l’attaque de clones en Java :MDR:

bon allez faut que je prépare mon WE (BBQsous la pluie :confused: )

Yop :hello:

hello les jeunes :smiley:

Bonjour =) !

Question existancielle SQL :
LEFT JOIN => joindre des tables
WHERE => comparer avec une valeur prédéfinie
??

Je viens de regarder un script d’un pote, et il utilise toujours LEFT JOIN pour rejoindre ses tables, et WHERE juste pour les conditions… J’ai jamais utilisé LEFT JOIN de ma vie…
J’ai beau RTFM mais niet, qu’est-ce qui change un LEFT JOIN et un basic WHERE a.t1=b.t1

ça ne change rien pour un “inner join” et ça fait une jointure externe pour un left outer join (left join tout seul je ne sais pas si c’est outer ou inner)

J’ai tenté une jointure externe pour l’exo de mandarounet, mais c’est la seule requete qui ne marche pas :’(

Pour l’histoire, en SQL1 il ne devait pas y avoir de “join” donc tous les “anciens” ne l’utilisent pas.
et quand on utilise un “inner join” normalement ça devrais optimiser la requete pour utiliser les index en priorité, mais les moteurs SQL optimise bien même dans le where normalement, donc ça ne change vraiement rien.

Par contre il faut réserver les jointures ecterne au cas ou on en a vraiement besoin car ça complique la compréhension de la requête, il y a des chance que ce soit plus long à executer aussi.

Tu es en train de dire qu’il vaut mieux préférer le produit cartésien que [LEFT|INNER|RIGHT] JOIN ?

ah non pas du tout, c’est plutôt le inner join que je préfère, en revanche le produit cartésien fait la même chose en terme de résultat, et surement en terme de perf aussi (il faudrai lancer le fameux explain de mandarounet pour s’en assurer)
En fait, vu que la plupart du temps, je reprend les requetes des autres, je les laisse en “produit cartésien”: ça n’en n’est pas vraiement un puisque le moteur SQL est assez intelligent pour voir la jointure. pour moi un produit cartésien c’est plutôt quand on multiplie les résultats de part et d’autre car il n’y a pas de jointure.

Ce qui est à proscrire complètement c’est de mélanger les deux (là on n’a pas finit de s’emêler).

c’est les left et right join que je met à part car ce sont des jointure externe, pas symétriques, qui peuvent renvoyer du null (donc ce résultat est à gérer)
D’ailleurs je n’utilise que le left join comme jointure externe, pour ne pas m’emêler non plus avec des jointures qui fonctionnerais “dans l’autre sens”

J’ai un torrent à 500K +, c’est normal chef ? :smiley:

Ok ok, en gros pour relier deux tables faut que j’utilise LEFT JOIN, ne serait-ce déjà que pour clareté du code c’est ça?

JOIN, LEFT|RIGHT|INNER JOIN au choix

J’ai lu que JOIN LEFT était à privilégié à JOIN RIGHT qui était à déprécier. Pour INNER je sais pas, je sais même pas ce que change left, right ou inner :confused: !

Mail que je viens de réceptionner, via la mailing list de mon école de commerce :

"Bonjour,

Je dispose d’une semaine pour produire un mémoire de 30 pages sur le sujet suivant:

L’impact de l’IFRS sur le contrôle de gestion.

Je suis totalement profane sur ce sujet."

PT2R Je lui ai répondu qu’il était dans la merde, c’est pas constructif mais ca me fait marer :stuck_out_tongue: accessoirement je peux pas l’aider même si je le voulais, j’ai jamais eu la moyenne en compta gestion :smiley:

Une jointure normale, c’est un INNER JOIN, c’est le produit cartésien classique “filtré”. Un left join, c’est pour récupérer les résultats même si l’association n’existe pas pour tous les champs de la table de gauche. Dans ce cas là tu récupères des NULL. L’inverse, c’est le RIGHT JOIN avec la table de droite.

Deltree > MySQL préfère les INNER JOIN et en terme de perf c’est mieux.

Sinon, j’ai passé mon concours… trois épreuves :

  • Synthèse 2 h 30 :
    28 pages à raccourcir en 3/4… ça va, ça s’est bien passé.
  • Info 2 h 30 :
    toute la partie SQL, ça va… la partie algo j’ai fait que de la merde par manque de temps… on verra
  • Anglais 1 h 30 :
    bah c’était de l’anglais quoi… on verra aussi, mais ce sera pas mauvais.