Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 01/12/2010, 22h27   #1
Invité régulier
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 9
Points : 9
Par défaut Exclure les lignes identiques

Bonsoir,

J'aimerais savoir comment exclure les lignes identiques issu de "table_projet" dans ma requête.

Code :
1
2
3
4
5
6
7
8
9
10
$tags = '4,65,24,39'; // exemple
 
$sql->query('
	SELECT * FROM '.table_relation_tags.' r
	INNER JOIN '.table_projects.' p
	ON p.id = r.project_id
	WHERE r.tag_id IN ('.$tags.')
	ORDER BY id 
	DESC
');
Merci
Plougy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 22h30   #2
Membre éprouvé
 
Avatar de Tesing
 
Xavier Schepler
Étudiant
Inscription : septembre 2009
Messages : 273
Détails du profil
Informations personnelles :
Nom : Xavier Schepler
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : septembre 2009
Messages : 273
Points : 402
Points : 402
Code :
1
2
3
4
5
6
7
8
9
10
$tags = '4,65,24,39'; // exemple
 
$sql->query('
	SELECT DISTINCT columns FROM '.table_relation_tags.' r
	INNER JOIN '.table_projects.' p
	ON p.id = r.project_id
	WHERE r.tag_id IN ('.$tags.')
	ORDER BY id 
	DESC
');
Edit : apparement il faut spécifier les colonnes
__________________
Keep it simple, stupid !
Tesing est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 22h30   #3
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Qu'entends-tu par exclure ?

Si tu n'en veux qu'une, tu peux utiliser DISTINCT
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 22h58   #4
Invité régulier
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 9
Points : 9
Citation:
Envoyé par sabotage
Qu'entends-tu par exclure ?
MySQL me retourne les lignes de mes projects qui comprennent les TAG_ID recherché.

Il y a cependant plusieurs projets qui ont plusieurs tags, et dans ce cas là, MySQL me retourne plusieurs fois la même ligne identique d'un projet.

Citation:
Envoyé par Tesing
SELECT DISTINCT columns
Parfait, seul hic, il faut spécifier toute les colonnes comme tu l'as dit.

Merci à vous deux
Plougy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 00h29   #5
Invité régulier
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 9
Points : 9
Comment peut on faire pour fusionner le résultat de 2 SELECT, tout en ayant un DISTINCT global ?
Plougy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 00h37   #6
Membre éprouvé
 
Avatar de guigo
 
Inscription : juin 2006
Messages : 606
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 606
Points : 479
Points : 479
Salut,
un GROUP BY tag_id ?
guigo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 17h25   #7
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 817
Points : 3 442
Points : 3 442
Citation:
Envoyé par Plougy Voir le message
Comment peut on faire pour fusionner le résultat de 2 SELECT, tout en ayant un DISTINCT global ?


Donne un exemple de données et ce que tu veux en obtenir.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2010, 19h48   #8
Invité régulier
 
Inscription : mai 2007
Messages : 45
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 45
Points : 9
Points : 9
J'ai résolu mon second problème, en utilisant UNION.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$sql->query('
	(
	SELECT DISTINCT id,user_id,image_t
	FROM '.table_relation_tags.' r
	INNER JOIN '.table_projects.' p
	ON p.id = r.project_id
	WHERE r.tag_id IN ('.$tags.')
	AND p.user_id !="'.$user_data['id'].'"
	)
	UNION
	(
	SELECT id,user_id,image_t
	FROM '.table_projects.'
	WHERE user_id IN ('.$users.')
	)
	ORDER BY id
	DESC
');
J'ai pu constaté que si il n'y a pas les même colonne, il n'est pas possible de fusionner les deux SELECT.

Merci
Plougy 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 10h26.


 
 
 
 
Partenaires

Hébergement Web