Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/10/2007, 15h53   #1
Membre du Club
 
Inscription : janvier 2007
Messages : 69
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 69
Points : 45
Points : 45
Par défaut [SQL] Récupération données de deux tables

bonjour,

Je me demandais une chose :

J'ai deux table :

Article (id_article, prix_article, taux_taxe)
Promo (promoid, id_produit, prix_promo)

Comment je peux afficher à la fois les promos avec prixttc = prix_promo
et les non promos avec prixttc=prix_article*(1+taux_taxe)

?

Merci d'avance.
Larffas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 16h02   #2
Membre régulier
 
Avatar de Azephel
 
Inscription : février 2007
Messages : 141
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : février 2007
Messages : 141
Points : 73
Points : 73
Bonjour !

Sûrement avec une requête du genre
Code :
1
2
3
SELECT id_article AS ID, (prix_article*(1+taux_taxe)) AS PRIX FROM article WHERE id_article NOT IN (SELECT id_produit FROM promo)
UNION
SELECT id_article AS ID, (prix_promo) AS PRIX FROM article a INNER JOIN promo p ON a.id_article=p.id_produit WHERE id_article IN (SELECT id_produit FROM promo)
Je pense que ça devrait aller avec ça ^^
Azephel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 16h02   #3
Membre éclairé
 
Étudiant
Inscription : juin 2005
Messages : 289
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2005
Messages : 289
Points : 371
Points : 371
Envoyer un message via MSN à DroP
Regarde du coté du mot clé UNION, cela te permet de créer 2 requêtes (attention elles doivent obligatoirement avoir le même nombre de colonnes) distinctes en terme de filtres et de regrouper leurs résultats

Code :
1
2
3
4
 
SELECT ..... FROM TABLE1 WHERE FILTRE1
UNION
SELECT ..... FROM TABLE1 WHERE FILTRE2
DroP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2007, 16h08   #4
Membre régulier
 
Avatar de Azephel
 
Inscription : février 2007
Messages : 141
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : février 2007
Messages : 141
Points : 73
Points : 73
En effet il faut qu'elles aient le même nombre de colonnes. De plus, si tu veux ordonner ton résultat, le ORDER BY se fait tout à la fin, comme le GROUP BY.

A noter aussi qu'en cas d'ORDER BY, il faut que les colonnes qui te servent à faire le tri soient dans la clause SELECT.

Voila, avec ça tu pourras faire ce que tu veux !
Azephel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h29.


 
 
 
 
Partenaires

Hébergement Web