IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Exclure les lignes identiques [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre expérimenté
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'entends-tu par exclure ?

    Si tu n'en veux qu'une, tu peux utiliser DISTINCT
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Par défaut
    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

  5. #5
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Par défaut
    Comment peut on faire pour fusionner le résultat de 2 SELECT, tout en ayant un DISTINCT global ?

  6. #6
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Salut,
    un GROUP BY tag_id ?

  7. #7
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 341
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 341
    Billets dans le blog
    17
    Par défaut
    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.

  8. #8
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Par défaut
    J'ai résolu mon second problème, en utilisant UNION.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/11/2012, 12h27
  2. [Free Pascal] Détecter les lignes identiques dans deux tableaux de texte
    Par jeanmich dans le forum Free Pascal
    Réponses: 11
    Dernier message: 10/01/2009, 15h43
  3. Réponses: 5
    Dernier message: 19/06/2008, 18h26
  4. Détecter les lignes identiques entre deux matrices
    Par totovich dans le forum MATLAB
    Réponses: 5
    Dernier message: 17/04/2007, 09h42
  5. exclure les lignes blanches dans une requêtes
    Par sam01 dans le forum Requêtes
    Réponses: 6
    Dernier message: 03/10/2006, 09h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo