par
guigui69 » 27 janv. 2009, 17:30
Bonjour à tous,
j'ai une question:
Table question
Code : Tout sélectionner
CREATE TABLE `qt_audit` (
`id_qt_audit` int(11) NOT NULL auto_increment,
`id_audit` int(11) NOT NULL,
`question_qt_audit` text NOT NULL,
`id_coefficient_hygiene` int(11) NOT NULL,
`id_coefficient_securite` int(11) NOT NULL,
`id_coefficient_environnement` int(11) NOT NULL,
`id_critere_audit` int(11) NOT NULL,
`id_scritere_audit` int(11) NOT NULL,
PRIMARY KEY (`id_qt_audit`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
--
-- Contenu de la table `qt_audit`
--
INSERT INTO `qt_audit` (`id_qt_audit`, `id_audit`, `question_qt_audit`, `id_coefficient_hygiene`, `id_coefficient_securite`, `id_coefficient_environnement`, `id_critere_audit`, `id_scritere_audit`) VALUES
(1, 1, 'ggsdgdfgdfgdfg sfg dfg sdf gdf g fgs d g fsd', 1, 2, 3, 1, 11),
(2, 1, 'tdhgjkjkh khkj kjhkjhhjkhkkjhkj hkj kh', 2, 1, 4, 1, 11),
(4, 1, 'tdhgjkjkh khkj kjhkjhhjkhkkjhkj hkj kh', 4, 5, 5, 3, 22),
(9, 1, 'tettetetet', 2, 3, 4, 1, 1),
(6, 1, 'tdhgjkjkh khkj kjhkjhhjkhkkjhkj hkj kh', 3, 2, 2, 1, 7),
(7, 1, 'kkkkkkkkkkkkkw vfdgkddgfd gfdgdfgfdkg fdgdfkgfd kg fdgdkgdwgdgdf', 1, 1, 1, 1, 3),
(8, 1, 'kkkkkkkkkkkkkw vfdgkddgfd gfdgdfgfdkg fdgdfkgfd kg fdgdkgdwgdgdf', 3, 3, 3, 2, 13);
Table reponse:
Code : Tout sélectionner
Structure de la table `rps_audit`
--
CREATE TABLE `rps_audit` (
`id_rps_audit` int(11) NOT NULL auto_increment,
`id_client_audit` int(11) NOT NULL,
`id_qt_audit` int(11) NOT NULL,
`rps_rps_audit` int(2) NOT NULL,
`commentaire_rps_audit` text NOT NULL,
PRIMARY KEY (`id_rps_audit`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
--
-- Contenu de la table `rps_audit`
--
INSERT INTO `rps_audit` (`id_rps_audit`, `id_client_audit`, `id_qt_audit`, `rps_rps_audit`, `commentaire_rps_audit`) VALUES
(1, 1, 1, 8, ''),
(2, 1, 2, 4, 'ihuihiuhiuhiuhi'),
(3, 1, 4, 1, 'uhiuiuhuuiiu'),
(4, 1, 6, 1, 'hjhjhjh'),
(5, 1, 8, 4, 'uhhuhikhui');
Client audit:
Code : Tout sélectionner
CREATE TABLE `client_audit` (
`id_client_audit` int(11) NOT NULL auto_increment,
`id_audit` int(11) NOT NULL,
`id_client` int(11) NOT NULL,
`date_client_audit` date NOT NULL,
`heure_client_audit` time NOT NULL,
`auteur_client_audit` varchar(32) NOT NULL,
`status_client_audit` tinyint(1) NOT NULL,
PRIMARY KEY (`id_client_audit`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `client_audit`
--
INSERT INTO `client_audit` (`id_client_audit`, `id_audit`, `id_client`, `date_client_audit`, `heure_client_audit`, `auteur_client_audit`, `status_client_audit`) VALUES
(1, 1, 1, '2008-11-21', '12:12:00', 'BBBBBBBBBBBBbb ', 0);
Client audit
Code : Tout sélectionner
Structure de la table `information_audit`
--
CREATE TABLE `information_audit` (
`id_audit` int(11) NOT NULL auto_increment,
`titre_audit` varchar(32) NOT NULL,
`version_audit` int(11) NOT NULL,
`date_audit` date NOT NULL,
`code_audit` varchar(32) NOT NULL,
`point_satisfaisant_audit` int(1) default NULL,
`point_aameliorer_audit` int(1) default NULL,
`point_nonsatisfaisant_audit` int(1) default NULL,
`status_audit` tinyint(1) NOT NULL,
PRIMARY KEY (`id_audit`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `information_audit`
--
INSERT INTO `information_audit` (`id_audit`, `titre_audit`, `version_audit`, `date_audit`, `code_audit`, `point_satisfaisant_audit`, `point_aameliorer_audit`, `point_nonsatisfaisant_audit`, `status_audit`) VALUES
(1, 'test1', 1, '2009-01-22', '1', 8, 4, 1, 0);
Voici mes tables:
Information audit est la table regroupement les informations de l'audit (le titre, version date, le nombre de point pour les 3 réponses autoriser).
qt_audit se sont les questions avec leur coeff pour les 3 réponses.
(Qt_audit est lié avec information audit par id_audit)
Client_audit est la table qui indique les informations sur l'audit réaliser sur XXX client. (Date, quel audit on utilise de l'information_audit).
rps_audit ici on stocke les résultat des réponses (la note , id_qt_audit, commentaire)
et je voudrait réaliser une requête comme ceci:
Code : Tout sélectionner
SELECT rps_audit.id_qt_audit, SUBSTRING(question_qt_audit,1,100)as
question_qt_audit, id_rps_audit, nom_critere_audit, ca.id_critere_audit, nom_scritere_audit, sca.id_scritere_audit, point_satisfaisant_audit,point_aameliorer_audit, point_nonsatisfaisant_audit, rps_rps_audit, commentaire_rps_audit
FROM rps_audit
LEFT JOIN qt_audit ON qt_audit.id_qt_audit=rps_audit.id_qt_audit
INNER JOIN information_audit ON information_audit.id_audit=qt_audit.id_audit
INNER JOIN critere_audit ca ON ca.id_critere_audit=qt_audit.id_critere_audit
INNER JOIN scritere_audit sca ON sca.id_scritere_audit=qt_audit.id_scritere_audit
WHERE id_client_audit='1' ORDER BY nom_critere_audit, nom_scritere_audit
Je voudrait tout les questions et les réponses ou id_client_audit est à "1" et je voudrait aussi qu'il m'affiche aussi les questions qui ne n'ont pas de réponse . Je sais qu'il faut utiliser Left ou Right Join mais je but

.
Si quelqu'un pourrait m'éclairer je suis preneur.
Merci par avance
guigui69
Bonjour à tous,
j'ai une question:
Table question
[code]
CREATE TABLE `qt_audit` (
`id_qt_audit` int(11) NOT NULL auto_increment,
`id_audit` int(11) NOT NULL,
`question_qt_audit` text NOT NULL,
`id_coefficient_hygiene` int(11) NOT NULL,
`id_coefficient_securite` int(11) NOT NULL,
`id_coefficient_environnement` int(11) NOT NULL,
`id_critere_audit` int(11) NOT NULL,
`id_scritere_audit` int(11) NOT NULL,
PRIMARY KEY (`id_qt_audit`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
--
-- Contenu de la table `qt_audit`
--
INSERT INTO `qt_audit` (`id_qt_audit`, `id_audit`, `question_qt_audit`, `id_coefficient_hygiene`, `id_coefficient_securite`, `id_coefficient_environnement`, `id_critere_audit`, `id_scritere_audit`) VALUES
(1, 1, 'ggsdgdfgdfgdfg sfg dfg sdf gdf g fgs d g fsd', 1, 2, 3, 1, 11),
(2, 1, 'tdhgjkjkh khkj kjhkjhhjkhkkjhkj hkj kh', 2, 1, 4, 1, 11),
(4, 1, 'tdhgjkjkh khkj kjhkjhhjkhkkjhkj hkj kh', 4, 5, 5, 3, 22),
(9, 1, 'tettetetet', 2, 3, 4, 1, 1),
(6, 1, 'tdhgjkjkh khkj kjhkjhhjkhkkjhkj hkj kh', 3, 2, 2, 1, 7),
(7, 1, 'kkkkkkkkkkkkkw vfdgkddgfd gfdgdfgfdkg fdgdfkgfd kg fdgdkgdwgdgdf', 1, 1, 1, 1, 3),
(8, 1, 'kkkkkkkkkkkkkw vfdgkddgfd gfdgdfgfdkg fdgdfkgfd kg fdgdkgdwgdgdf', 3, 3, 3, 2, 13);
[/code]
Table reponse:
[code]
Structure de la table `rps_audit`
--
CREATE TABLE `rps_audit` (
`id_rps_audit` int(11) NOT NULL auto_increment,
`id_client_audit` int(11) NOT NULL,
`id_qt_audit` int(11) NOT NULL,
`rps_rps_audit` int(2) NOT NULL,
`commentaire_rps_audit` text NOT NULL,
PRIMARY KEY (`id_rps_audit`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
--
-- Contenu de la table `rps_audit`
--
INSERT INTO `rps_audit` (`id_rps_audit`, `id_client_audit`, `id_qt_audit`, `rps_rps_audit`, `commentaire_rps_audit`) VALUES
(1, 1, 1, 8, ''),
(2, 1, 2, 4, 'ihuihiuhiuhiuhi'),
(3, 1, 4, 1, 'uhiuiuhuuiiu'),
(4, 1, 6, 1, 'hjhjhjh'),
(5, 1, 8, 4, 'uhhuhikhui');
[/code]
Client audit:
[code]
CREATE TABLE `client_audit` (
`id_client_audit` int(11) NOT NULL auto_increment,
`id_audit` int(11) NOT NULL,
`id_client` int(11) NOT NULL,
`date_client_audit` date NOT NULL,
`heure_client_audit` time NOT NULL,
`auteur_client_audit` varchar(32) NOT NULL,
`status_client_audit` tinyint(1) NOT NULL,
PRIMARY KEY (`id_client_audit`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `client_audit`
--
INSERT INTO `client_audit` (`id_client_audit`, `id_audit`, `id_client`, `date_client_audit`, `heure_client_audit`, `auteur_client_audit`, `status_client_audit`) VALUES
(1, 1, 1, '2008-11-21', '12:12:00', 'BBBBBBBBBBBBbb ', 0);
[/code]
Client audit
[code]
Structure de la table `information_audit`
--
CREATE TABLE `information_audit` (
`id_audit` int(11) NOT NULL auto_increment,
`titre_audit` varchar(32) NOT NULL,
`version_audit` int(11) NOT NULL,
`date_audit` date NOT NULL,
`code_audit` varchar(32) NOT NULL,
`point_satisfaisant_audit` int(1) default NULL,
`point_aameliorer_audit` int(1) default NULL,
`point_nonsatisfaisant_audit` int(1) default NULL,
`status_audit` tinyint(1) NOT NULL,
PRIMARY KEY (`id_audit`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `information_audit`
--
INSERT INTO `information_audit` (`id_audit`, `titre_audit`, `version_audit`, `date_audit`, `code_audit`, `point_satisfaisant_audit`, `point_aameliorer_audit`, `point_nonsatisfaisant_audit`, `status_audit`) VALUES
(1, 'test1', 1, '2009-01-22', '1', 8, 4, 1, 0);
[/code]
Voici mes tables:
[i]Information audit [/i]est la table regroupement les informations de l'audit (le titre, version date, le nombre de point pour les 3 réponses autoriser).
[i]qt_audit[/i] se sont les questions avec leur coeff pour les 3 réponses.
(Qt_audit est lié avec information audit par id_audit)
[i]Client_audit[/i] est la table qui indique les informations sur l'audit réaliser sur XXX client. (Date, quel audit on utilise de l'information_audit).
[i]rps_audit[/i] ici on stocke les résultat des réponses (la note , id_qt_audit, commentaire)
et je voudrait réaliser une requête comme ceci:
[code]
SELECT rps_audit.id_qt_audit, SUBSTRING(question_qt_audit,1,100)as
question_qt_audit, id_rps_audit, nom_critere_audit, ca.id_critere_audit, nom_scritere_audit, sca.id_scritere_audit, point_satisfaisant_audit,point_aameliorer_audit, point_nonsatisfaisant_audit, rps_rps_audit, commentaire_rps_audit
FROM rps_audit
LEFT JOIN qt_audit ON qt_audit.id_qt_audit=rps_audit.id_qt_audit
INNER JOIN information_audit ON information_audit.id_audit=qt_audit.id_audit
INNER JOIN critere_audit ca ON ca.id_critere_audit=qt_audit.id_critere_audit
INNER JOIN scritere_audit sca ON sca.id_scritere_audit=qt_audit.id_scritere_audit
WHERE id_client_audit='1' ORDER BY nom_critere_audit, nom_scritere_audit
[/code]
Je voudrait tout les questions et les réponses ou id_client_audit est à "1" et je voudrait aussi qu'il m'affiche aussi les questions qui ne n'ont pas de réponse . Je sais qu'il faut utiliser Left ou Right Join mais je but :(.
Si quelqu'un pourrait m'éclairer je suis preneur.
Merci par avance
guigui69