Insérer une condition dans une jointure

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Insérer une condition dans une jointure

par Ripat » 22 août 2005, 08:32

Bonjour,

Essaye en mettant un OR sur la langue:

Code : Tout sélectionner

SELECT * FROM news t INNER JOIN news_content c ON t.id = c.Id WHERE c.id=32 AND (c.langue = '3' OR c.langue='1')
Dans PHP tu testes le nombre de lignes retournées, si plus d'une --> prendre la bonne dans le tableau php avec un array_search().

Je ne vois pas trop comment faire ça directement en SQL.

Insérer une condition dans une jointure

par adoul » 22 août 2005, 01:22

Bonjour,

Je construis actuellement un site multilingue. Pour mes news je dispose des tables suivantes :
- news qui contient : id, date, auteur, etc...
- news_content qui contient : newsId, contenu, langue

Pour le moment, il m'affiche le contenu des news FR si elles existent.

Moi je souhaiterais que si la news #32 existe en FR on affiche FR, si elle n'existe pas on affiche le contenu EN.

Voici ma requete actuelle :

Code : Tout sélectionner

SELECT c.content FROM news t INNER JOIN news_content c ON t.id = c.newsId WHERE c.langId = '3' ORDER BY t.creationDate DESC
Comment feriez-vous cela ?

Quelque chose du genre c.langId = '3' (OR c.langId = '1' IF DOES NOT EXIST), existe-il une commande amenant ce résultat ?

Merci de votre aide.

Alexis d'Oultremont