Bonjour, voilà mes deux tables
--
-- Structure de la table `categories`
--
CREATE TABLE categories (
catid int(11) NOT NULL auto_increment,
catname varchar(150) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (catid),
KEY catid (catid)
) ENGINE=MyISAM;
--
-- Structure de la table `news`
--
CREATE TABLE `news` (
`newsid` int(11) NOT NULL auto_increment,
`newsheadline` varchar(150) collate latin1_general_ci NOT NULL default '',
`newsbody` text collate latin1_general_ci NOT NULL,
`newsdate` date NOT NULL default '0000-00-00',
`newsauthor` int(11) NOT NULL default '0',
`newscat` int(11) NOT NULL default '0',
`surtitle` varchar(150) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`newsid`),
) ENGINE=MyISAM;
Je voudrais par un seul SELECT récupérer par exemple les données de news et aussi catname de categories lorsque newsdate = 2007-02-18.
Je sais le faire avec deux requêtes : la première sur news ensuite après avoir lu mes champs faire une requête sur categories pour lire catname à partir de newscat qui est le lien avec catid.
Un peu comme ça
SELECT * FROM `news` WHERE `newsdate` = '2007-02-18'
en admettant que je reçoive dans une des réponses newscat = 2, je lance ensuite cette requête
SELECT * FROM `categories` WHERE `catid` =2
J'espère ne pas avoir été trop confus. Je sais qu'une seule requête permet de gagner des performances, alors...
Partager