|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : février 2008 Messages : 12 ![]() |
Bonjour, pour mon petit site amateur j'ai besoin de faire une requête sql imbriquand une autre requête. J'ai fais ca
Code :
Code :
Comment faire pour donner le chiffre dans la deuxieme requête? merci de votre aide |
||||
|
|
00
|
|
|
#2 | ||
|
Membre émérite
![]() Tony Développeur .NET Inscription : novembre 2010 Messages : 570 ![]() |
Bonjour,
il faut donner un alias à ta table dans la requête ptrincipale : Code :
En théorie on n'a pas à mettre de quotes autour des noms de tables et de champs ... après c'est du mysql je suppose mais est-ce tout de même nécessaire ?
__________________
Le Porc est un loup pour le Porc. |
||
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Pacman PacmanBusiness analyst Inscription : juin 2004 Messages : 1 417 ![]() |
Salut !
Ce ne sont pas des vraies quotes (sinon ça passerait pas)... et ça sert à encapsuler les noms d'objets étranges (des espaces, ...) Ce n'est pas spécifique à MySQL. Sous Oracle, tu peux passer les noms d'objets entre double quotes Code :
PS : et je m'avance peut être un peu, mais il me semble que sous SQL Server tu peux mettre des [] autour des noms d'objets DB.
__________________
(c'est ma photo) Paku, Paku ! Pour les jeunes incultes : non, je ne suis pas un pokémon... Le pacblog : http://pacmann.over-blog.com/ |
||
|
00
|
|
|
#4 |
|
Membre émérite
![]() Tony Développeur .NET Inscription : novembre 2010 Messages : 570 ![]() |
Ah ok, en DB2 il me semble aussi qu'on peut utiliser les doubles quotes pour le faire, mais là en l'occurence les noms d'objets sont normaux donc les quotes ne sont pas nécessaires.
Merci pour l'info. Juste petite précision comme j'ai du faire du MySql une seule fois, si SELECT * FROM `ex_mycontest` C ne passe pas essaye SELECT * FROM `ex_mycontest` AS C
__________________
Le Porc est un loup pour le Porc. |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Par contre là
Y a bien un problème de quote |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : février 2008 Messages : 12 ![]() |
Bonjour, visiblement il falait simplement rajouter le nom de la table dans la seconde requête :
Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() Tony Développeur .NET Inscription : novembre 2010 Messages : 570 ![]() |
On n'a pas plus d'infos sur ce à quoi correspondent tes champs et tes variables PHP mais cette requête ne fait absoluement pas la même chose que la requête de départ.
__________________
Le Porc est un loup pour le Porc. |
|
|
10
|
|
|
#8 |
|
Membre Expert
![]() Laure Consultante en Business Intelligence Inscription : avril 2007 Messages : 983 ![]() |
J'ai remarqué aussi que dans ta requête principale la table ex_vote apparait alors que tu ne l'utilises que dans ta sous-requête. Cela doit influencer ton SELECT *, tu devrais l'enlever.
__________________
~ Lola ~ Ne pas oublier : et aussi :
|
|
|
00
|
|
|
#9 | ||
![]() ![]() |
C'est une horreur cette requête !
![]() 1) Évite la guerre des étoiles ! 2) Tu mets deux tables dans le FROM mais aucune condition de jointure dans le WHERE. Tu fais donc le produit cartésien des deux tables. Est-ce que tu souhaites ? Si tu fais une jointure entre les deux tables, apprends à l'écrire selon la syntaxe en vigueur depuis 20 ans ! Mais comme dit lola06, si la table ex_vote est inutile dans la requête principale, supprime là carrément. 3) Si les colonnes du WHERE sont de type numérique, comme le suggèrent les valeurs cherchées (sauf la date), inutile d'ajouter des apostrophes ! 4) Plutôt que la fonction time() de PHP, utilise la fonction CURRENT_TIME du langage SQL. 5) Utilise des alias dès qu'il y a plus d'une table dans une requête ; ça rend la requête plus agréable à lire. Voici la requête partiellement nettoyée : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
10
|
|
|
#10 | |
|
Expert Confirmé Sénior
![]() François Chef de projet NTIC Inscription : janvier 2007 Messages : 5 353 ![]() |
Citation:
En clair si on fait on peut faire mais si on fait tout autre variation de casing de theTable ne sera pas reconnu.
__________________
Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça... Une réponse vous a aidé ? utiliser le bouton "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel |
|
|
|
00
|
|
|
#11 |
![]() ![]() |
Pour Oracle je ne sais pas encore mais depuis que j'ai découvert ce piège dans Postgresql, je nomme toutes mes tables et colonnes en minuscules !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
Copyright © 2000-2012 - www.developpez.com