Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2149 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Requête in WHERE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête in WHERE

n°1334822
TheBosy
Posté le 29-03-2006 à 18:53:12  profilanswer
 

Bonjour à tous,
 
Y a-t'il un moyen pour qu'a une requête dans WHERE on puisse par exemple mettre theme=1 et 2 ?
 
Donc selection des enregistrements ou le theme égal 1 ou 2. J'ai essayé avec theme=1 OR theme=2 mais il est des problèmes par la suite.  
 
Merci d'avance a+
 
Bosy

mood
Publicité
Posté le 29-03-2006 à 18:53:12  profilanswer
 

n°1334826
afbilou
pouet your life
Posté le 29-03-2006 à 18:57:45  profilanswer
 

et pourtant c'est la bonne syntaxe avec le OR.

n°1334855
TheBosy
Posté le 29-03-2006 à 19:18:52  profilanswer
 

Oui cela marche mais par la suite quand j'essai d'afficher les données des enregistements ils se mélanges.

n°1334859
skeye
Posté le 29-03-2006 à 19:21:41  profilanswer
 

trop dur pour toi.[:dawa]
 
order by est ton ami.:o
Et c'est du sql, pas du php.:o


Message édité par skeye le 29-03-2006 à 19:21:48

---------------
Can't buy what I want because it's free -
n°1334865
TheBosy
Posté le 29-03-2006 à 19:32:23  profilanswer
 

Arf oui c'est du sql j'ai pas fais attention.
 
Pour le order by ce n'est pas ce que je veux, ca résou pas mon problème. C'est les données des enregistrements qui se mélange, c'est assez bizzare. Juste par exemple l'enregistement 2 qui prend le titre du 1.

n°1334869
skeye
Posté le 29-03-2006 à 19:34:28  profilanswer
 

pas possible. Montre la requête complète.


---------------
Can't buy what I want because it's free -
n°1334872
TheBosy
Posté le 29-03-2006 à 19:37:13  profilanswer
 

Donc 2 tables, t_news et t_theme, la voici:
 

Code :
  1. SELECT * FROM t_news, t_theme WHERE t_news.num_theme=t_theme.the_id AND t_news.num_theme='1' OR t_news.num_theme='2' ORDER BY new_id DESC

Message cité 1 fois
Message édité par TheBosy le 29-03-2006 à 19:37:25
n°1334873
skeye
Posté le 29-03-2006 à 19:39:19  profilanswer
 

ok, manque des parenthèses, je pense.
 
SELECT * FROM t_news, t_theme  
WHERE t_news.num_theme=t_theme.the_id  
AND (t_news.num_theme='1' OR t_news.num_theme='2')  
ORDER BY new_id DESC


---------------
Can't buy what I want because it's free -
n°1334876
smaragdus
whores, drugs & J.S. Bach
Posté le 29-03-2006 à 19:40:20  profilanswer
 

TheBosy a écrit :

Donc 2 tables, t_news et t_theme, la voici:
 

Code :
  1. SELECT * FROM t_news, t_theme WHERE t_news.num_theme=t_theme.the_id AND t_news.num_theme='1' OR t_news.num_theme='2' ORDER BY new_id DESC



 
1) mauvaise cat
2) "where" sert à filtrer pas à faire des jointures
3) ouvre une doc sql  

n°1334879
skeye
Posté le 29-03-2006 à 19:42:08  profilanswer
 

2) ce n'est en aucun cas un pb quand on sait ce qu'on fait.[:dawao]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 29-03-2006 à 19:42:08  profilanswer
 

n°1334882
smaragdus
whores, drugs & J.S. Bach
Posté le 29-03-2006 à 19:45:13  profilanswer
 

skeye a écrit :

2) ce n'est en aucun cas un pb quand on sait ce qu'on fait.[:dawao]


non, where sert à filtrer pas à faire une jointure, c'est lent, pas optimisé, moche, pourri, dégueux :vomi:

Message cité 1 fois
Message édité par smaragdus le 29-03-2006 à 19:45:55
n°1334883
skeye
Posté le 29-03-2006 à 19:46:28  profilanswer
 

smaragdus a écrit :

non, where sert à filtrer pas à faire une jointure, c'est lent, pas optimisé, moche, pourri, dégueux [:spamafote]


 
Prouve-moi qu'il y a effectivement une différence flagrante avec un SGBD récent.:o


---------------
Can't buy what I want because it's free -
n°1334886
TheBosy
Posté le 29-03-2006 à 19:47:21  profilanswer
 

Merci beaucoup Skeye c'était bien le manque des parenthèses.
 
Smaragdus merci quand meme mais depuis tjs j'ai fais les jointure dans where et ça m'a jamais posé de problème... Tu es sur que tu as déjà fais du SQL?

n°1334887
skeye
Posté le 29-03-2006 à 19:48:56  profilanswer
 

TheBosy a écrit :

Merci beaucoup Skeye c'était bien le manque des parenthèses.
 
Smaragdus merci quand meme mais depuis tjs j'ai fais les jointure dans where et ça m'a jamais posé de problème... Tu es sur que tu as déjà fais du SQL?


euh faudrait rester poli quand même hein...dans l'absolu il a raison, il y a une syntaxe pour ça.:o


---------------
Can't buy what I want because it's free -
n°1334888
TheBosy
Posté le 29-03-2006 à 19:52:05  profilanswer
 

Ah mais je suis poli, j'éspère que ma phrase n'est pas mal prise, ici en belgique cela n'est pas malhonnete, désolé si ca là été pour vous.

n°1334889
skeye
Posté le 29-03-2006 à 19:52:34  profilanswer
 

(par contre je serais curieux de voir comment organiser certaines de mes requêtes avec des jolis JOIN...[:petrus75])


---------------
Can't buy what I want because it's free -
n°1334890
skeye
Posté le 29-03-2006 à 19:53:38  profilanswer
 

TheBosy a écrit :

Ah mais je suis poli, j'éspère que ma phrase n'est pas mal prise, ici en belgique cela n'est pas malhonnete, désolé si ca là été pour vous.


Demander à quelqu'un qui vient répondre à une question SQL s'il a déjà fait du sql, c'est un peu du foutage de gueule, quand même... :/


---------------
Can't buy what I want because it's free -
n°1334891
TheBosy
Posté le 29-03-2006 à 19:53:50  profilanswer
 

Lol :)

n°1334901
smaragdus
whores, drugs & J.S. Bach
Posté le 29-03-2006 à 20:14:15  profilanswer
 

skeye a écrit :

Prouve-moi qu'il y a effectivement une différence flagrante avec un SGBD récent.:o


 
C'est pas toujours flagrant car certains SGBD sont optimisés pour pallier à l'ignorance des programmeurs qui envoient des requetes toutes pourries et mal foutues  :sarcastic:  

n°1334903
smaragdus
whores, drugs & J.S. Bach
Posté le 29-03-2006 à 20:14:56  profilanswer
 

TheBosy a écrit :

Tu es sur que tu as déjà fais du SQL?


 
Et toi t'as déjà pensé à ouvrir une doc SQL à la section jointure ? :lol:

n°1334909
skeye
Posté le 29-03-2006 à 20:20:16  profilanswer
 

smaragdus a écrit :

C'est pas toujours flagrant car certains SGBD sont optimisés pour pallier à l'ignorance des programmeurs qui envoient des requetes toutes pourries et mal foutues  :sarcastic:


 
[:moule_bite]
 
Justement c'est là que je voulais en venir, le résultat va être exactement le même ou la différence négligeable dans la grande majorité des cas.
Et personnellement je trouve ça plus lisible, mais ça c'est une question d'habitude.[:spamafote]
 
Bref, c'est une manière de faire qui a au moins le mérite de marcher partout...;)


---------------
Can't buy what I want because it's free -
n°1334917
smaragdus
whores, drugs & J.S. Bach
Posté le 29-03-2006 à 20:24:00  profilanswer
 

skeye a écrit :

[:moule_bite]
 
Justement c'est là que je voulais en venir, le résultat va être exactement le même ou la différence négligeable dans la grande majorité des cas.


Et quand c'est pas le cas, tu fais quoi : tu conseilles au client d'acheter un plus gros serveur ?  :sarcastic:  

Citation :

Et personnellement je trouve ça plus lisible, mais ça c'est une question d'habitude.[:spamafote]


 
Non c'est moins lisible, on ne distingue pas le filtrage de la jointure.
C'est sûr que quand on programme comme un porc, on finit par être habitué  :sarcastic:

Message cité 1 fois
Message édité par smaragdus le 29-03-2006 à 20:27:14
n°1334927
skeye
Posté le 29-03-2006 à 20:32:24  profilanswer
 

smaragdus a écrit :

Et quand c'est pas le cas, tu fais quoi : tu conseilles au client d'acheter un plus gros serveur ?  :sarcastic:


 
Exactement.[:dawa]
 

smaragdus a écrit :

Non c'est moins lisible, on ne distingue pas le filtrage de la jointure.
C'est sûr que quand on programme comme un porc, on finit par être habitué  :sarcastic:


 
Si tu le dis, ça doit être ça...[:marc]


---------------
Can't buy what I want because it's free -
n°1334956
smaragdus
whores, drugs & J.S. Bach
Posté le 29-03-2006 à 20:59:29  profilanswer
 

skeye a écrit :

Si tu le dis, ça doit être ça...[:marc]


 
En effet, j'ai raison, t'as tort [:spamafote]
 
http://sql.developpez.com/sqlaz/jointures/

n°1334960
skeye
Posté le 29-03-2006 à 21:02:44  profilanswer
 


question de point de vue...[:skeye]
http://sql.developpez.com/sqlaz/jointures/#L6
 
Tu veux faire des requêtes qui marchent partout, tu oublies la syntaxe normalisée...;)


---------------
Can't buy what I want because it's free -
n°1334965
smaragdus
whores, drugs & J.S. Bach
Posté le 29-03-2006 à 21:08:02  profilanswer
 

skeye a écrit :

question de point de vue...[:skeye]
http://sql.developpez.com/sqlaz/jointures/#L6
 
Tu veux faire des requêtes qui marchent partout, tu oublies la syntaxe normalisée...;)


Tu pourrais lire les liens que je donne :  :sarcastic:  
Le INNER JOIN (cas précis de la requete qui nous concerne) est supporté partout [:rofl]
 
Tu t'enfonces là :lol:
 

Citation :


Dans la mesure du possible, utilisez toujours un opérateur de jointure normalisé Sql2 (mot clef JOIN).
 
En effet :
 
    * Les jointures faites dans la clause WHERE (ancienne syntaxe de 1986 !) ne permettent pas de faire la distinction de prime abord entre ce qui relève du filtrage et ce qui relève de la jointure.
    * Il est à priori absurde de vouloir filtrer dans le WHERE (ce qui restreint les données du résultat) et de voiloir "élargir" ce résultat par une jointure dans la même clause WHERE de filtrage.
    * La lisibilité des requêtes est plus grande en utilisant la syntaxe à base de JOIN, en isolant ce qui est du filtrage et de la jointure, mais aussi en isolant avec clarté chaque condition de jointures entre chaque couples de table.
    * L'optimisation d'exécution de la requête est souvent plus pointue du fait de l'utilisation du JOIN.
    * Lorsque l'on utilise l'ancienne syntaxe et que l'on supprime la clause WHERE a des fins de tests, le moteur SQL réalise le produit cartésiens des tables ce qui revient la plupart du temps à mettre à genoux le serveur !


 
Ah mais j'y suis : c'est parce que tu ne sais pas ce qu'est un inner join.
Evite donc de dispenser tes conseils bidons sur cette cat :sarcastic:
 
Cherche pas t'as tort [:dawa]


Message édité par smaragdus le 29-03-2006 à 21:20:06
n°1335542
Djebel1
Nul professionnel
Posté le 30-03-2006 à 14:33:11  profilanswer
 

très intéressant ce lien, j'ai toujours eu du mal sur les jointures, c'est fini ! :p

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Requête in WHERE

 

Sujets relatifs
Données dans un tableau suite à une requête[Oracle 9i]Export résultat de requête SQL vers fichier XML?
récuperer une seule valeur via une requete sqlEquivalent de plusieurs COUNT(x WHERE y = z) dans une requête ?
[Résolu] Requête WHERE : ça coince[MySQL] Comment éviter une requete de type : Select ... Where .. IN .?
[SQL] Requete , where avec plusieurs conditionsRequete mysql / where selection par semaine ???
Problème de requête SQL avec condition "Where" en vb...[mySQL] Requete where compris entre x et y
Plus de sujets relatifs à : Requête in WHERE


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)