J'ai une base de données MySQL avec deux tables pour les questions et réponses. Chaque question a une réponse correcte et trois réponses incorrectes. Il y a toujours quatre réponses pour chaque question et une seule est correcte.SELECT requête obtenant des lignes de table en tant que colonnes dans MySQL
Les tables sont:
CREATE TABLE `question` (
`id_question` smallint(5) unsigned NOT NULL auto_increment,
`text` varchar(255) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id_question`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE `answer` (
`id_answer` mediumint(8) unsigned NOT NULL auto_increment,
`id_question` smallint(5) unsigned NOT NULL,
`is_correct` tinyint(1) NOT NULL,
`text` varchar(45) collate utf8_unicode_ci default NULL,
PRIMARY KEY (`id_answer`,`id_question`),
KEY `fk_id_question_idx` (`id_question`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
J'ai besoin d'aide avec une requête de sélection. Je voudrais obtenir une table avec des questions dans les rangées et les quatre réponses en colonnes (d'abord la bonne, puis les trois autres). Jusqu'à présent, j'ai été en mesure d'obtenir une sortie comme celle-ci:
Question | Answer | Is_Correct
-------------------------------
Question 1 Answer 1-1 1
Question 1 Answer 1-2 0
Question 1 Answer 1-3 0
Question 1 Answer 1-4 0
Question 2 Answer 2-1 1
Question 2 Answer 2-2 0
Question 2 Answer 2-3 0
Question 2 Answer 2-4 0
...
Comment puis-je obtenir le résultat suivant?
Question | Correct_Answer | Incorrect_answer1 | Incorrect_answer2 | Incorrect_answer3
--------------------------------------------------------------
Question 1 Answer 1-1 Answer 1-2 Answer 1-3 Answer 1-4
Question 2 Answer 2-1 Answer 2-2 Answer 2-3 Answer 2-4
Je ne suis pas familier avec les requêtes de pivot dans MySQL, mais qui est un bon endroit pour commencer googler :). J'aimerais pouvoir aider plus ... Je suis sûr que quelqu'un affichera la réponse. –