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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] et join

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] et join

n°852426
be_pipo
Posté le 17-09-2004 à 10:28:50  profilanswer
 

Hello,
J'ai un petit problème pour joindre une table (qui se nomme 'cat_name' ) de type :
id - nom  
et une table (qui se nome news mais la cellule qui m'interresse s'apelle 'cat' ) dans laquelle il y a des chiffres séparés par des virgules :
2, 24, 1, 7
Ces chiffres correspondent aux id's de la table "cat_name".
J'ai cherché dans la doc MySQL et sur :google: mais pas moyen de trouver  :sweat:

mood
Publicité
Posté le 17-09-2004 à 10:28:50  profilanswer
 

n°852431
ratibus
Posté le 17-09-2004 à 10:37:29  profilanswer
 

Tu veux dire que pour un enregistrement de la table news, le champ cat contient plusieurs valeurs ?


---------------
Mon blog
n°852434
skeye
Posté le 17-09-2004 à 10:40:26  profilanswer
 

ratibus a écrit :

Tu veux dire que pour un enregistrement de la table news, le champ cat contient plusieurs valeurs ?


on dirait bien...c'est ce que j'appelle une mauvaise modélisation...[:joce]


---------------
Can't buy what I want because it's free -
n°852437
be_pipo
Posté le 17-09-2004 à 10:43:54  profilanswer
 

Voici a quoi ressemble cat_name :

Code :
  1. +----+----------------------------------+
  2. | id | name                             |
  3. +----+----------------------------------+
  4. |  1 | Agriculture                      |
  5. |  2 | Auto-Moto                        |
  6. |  3 | Bâtiment - Construction          |
  7. |  4 | Banques - Assurances             |
  8. |  5 | Chimie                           |
  9. |  6 | Culturel                         |
  10. +----+----------------------------------+


 
Et voici a quoi ressemble la cellule ou se trouvent les valeurs séparées par des virgules :

Code :
  1. +-----------+
  2. | cat       |
  3. +-----------+
  4. | 6,10,7,14 |
  5. | 6,10,7,14 |
  6. +-----------+


les valeurs séparées par des virgules sont en fait les id de la table cat_name tout au-dessus mais je vois pas comment les joindre  [:be_pipo]

n°852440
skeye
Posté le 17-09-2004 à 10:48:35  profilanswer
 

be_pipo a écrit :


[...]
les valeurs séparées par des virgules sont en fait les id de la table cat_name tout au-dessus mais je vois pas comment les joindre  [:be_pipo]


Pour être logique, tu devrais avoir 3 tables : cat_name, news, et une news_est_dans_cat contenant cat_id et news_id.


Message édité par skeye le 17-09-2004 à 10:48:59

---------------
Can't buy what I want because it's free -
n°852443
be_pipo
Posté le 17-09-2004 à 10:55:00  profilanswer
 

skeye a écrit :

Pour être logique, tu devrais avoir 3 tables : cat_name, news, et une news_est_dans_cat contenant cat_id et news_id.


Ben wi mais la db va être conséquente et les news peuvent se trouver dans beaucoup de catégories. Je trouvais ça con de rajouter une table avec  
id news - id catégorie
1 - 2
1 - 8
1 - 3
1 - 28
1 - 25
Donc j'ai tout rassemblé dans une seule table. Les recherches ne se font de tout façon que sur une seule catégorie a la fois donc c'est assez rapide (j'ai testé avec un million de news).  
La jointure dont je parle ici est uniquement utilisée en moderation donc presque jamais apellée c'est juste pour pouvoir ajouter/enlever des catégories  :)

n°852451
Sebastien
Posté le 17-09-2004 à 10:59:20  profilanswer
 

Citation :

Je trouvais ça con de rajouter une table avec  
id news - id catégorie


 
Et pourtant c'est la seule bonne maniere de faire.

n°852452
skeye
Posté le 17-09-2004 à 11:00:46  profilanswer
 

Sebastien a écrit :

Citation :

Je trouvais ça con de rajouter une table avec  
id news - id catégorie


 
Et pourtant c'est la seule bonne maniere de faire.


:jap:
Aller se faire chier à exploser une chaine à chaque select sur la table, c'est franchement n'importe-quoi... :sweat:


---------------
Can't buy what I want because it's free -
n°852453
be_pipo
Posté le 17-09-2004 à 11:01:41  profilanswer
 

Sebastien a écrit :

Citation :

Je trouvais ça con de rajouter une table avec  
id news - id catégorie


 
Et pourtant c'est la seule bonne maniere de faire.


Mairde j'avais fait comme ça au départ en plus :o
On m'aurait menti  :pt1cable:  
Enfin je voyais pas de différence de vitesse en select simple en tout cas  :ouch:

n°852457
be_pipo
Posté le 17-09-2004 à 11:03:48  profilanswer
 

Bon bah en même temps le reste est fait normallement et j'ai encore ma première table donc ça va aller vite :)  
mecrhiii tout le monde :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] et join

 

Sujets relatifs
exe de requêtes acceptant des .sql en paramètres avec mysql[AVIS] PHP ou JSP pour communiquer avec une base de données mySQL?
[PHP] Ecrire un fichier excel avec PHP depuis MYSQLmysql_fetch_query & galerie photo
Probleme autoincrement mysql[PHP/MySQL] Select par date [Résolu]
[mysql] Optimiser un peu tout ça (associations ternaires etc.) ?[Mysql, Join] [Edit : trouve alternative]
[mysql] j'ai pleins de join mais je vois pas comment faire autrementmysql : ç si pourri que ça les JOIN ?
Plus de sujets relatifs à : [MySQL] et join


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR