Pb requete

yoarf Messages postés 215 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 19 février 2009 - 14 janv. 2007 à 17:11
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 14 janv. 2007 à 22:56
Voici mes tables :
<hr size="2" width="100%" />-- Structure de la table `categorie_cp`
--

CREATE TABLE `categorie_cp` (
  `lib_cat_cp` varchar(100) collate latin1_general_ci NOT NULL,
  `num_cat_cp` int(2) NOT NULL,
  PRIMARY KEY  (`lib_cat_cp`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
<hr size="2" width="100%" />-- Structure de la table `carte_postale`
--

CREATE TABLE `carte_postale` (
  `id_cp` int(4) NOT NULL default '0',
  `fk_lib_cat_cp` varchar(100) NOT NULL default '',
  `date_cp` date NOT NULL default '0000-00-00',
  `ordre` int(4) NOT NULL default '0',
  PRIMARY KEY  (`id_cp`,`fk_lib_cat_cp`),
  KEY `fk_lib_cat_cp` (`fk_lib_cat_cp`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
<hr size="2" width="100%" />
Je voudrais afficher tous les éléments de la table carte_postale ordonnés selon le paramètre num_cat_cp (de la table categorie_cp).
A noter que fk_lib_cat_cap est un index correspondant à lib_cat_cp de categorie_cp.

Y.C

2 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
14 janv. 2007 à 20:47
Salut,

le mieux c'est de faire une belle jointure (je ne pourrais pas te dire laquelle comme ça, en général je préfère ne pas me casser la tête et puis question de compatibilité entre les différents systèmes de BDD je reste simple), sinon tu exportes tes deux tables puis tu tries carte postale avec usort()

à+
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
14 janv. 2007 à 22:56
tu t'es planté dans tes tables.

CREATE TABLE `categorie_cp` (
 `num_cat_cp` int(2) NOT NULL,
  `lib_cat_cp` varchar(100) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`num_cat_cp`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

CREATE TABLE `carte_postale` (
  `id_cp` int(4) NOT NULL default '0',
  `fk_num_cat_cp` int(2) NOT NULL,
  `date_cp` date NOT NULL default '0000-00-00',
  `ordre` int(4) NOT NULL default '0',
  PRIMARY KEY  (`id_cp`),
  KEY `fk_lib_cat_cp` (`fk_num_cat_cp`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Et après, pour joindre les 2 bouts :

SELECT xxx,yyy,zzz
FROM categorie_cp cat, carte_postale cp
WHERE cat.lib_cat_cp = cp.fk_num_cat_cp
[ AND autrecondition = autrevaleur ]

Voila.
0
Rejoignez-nous