У меня есть две таблицы questions
и choices
, choices
имеет отношение к questions
со столбцом с именем question_id
.И это также имеет внешнее ограничение на таблицу вопросов и каскад на удаление.
Но мне удается получить дубликаты в БД.И это было бы довольно просто удалить, но я также должен проверить таблицу choices
. И проверить, чтобы они также были дубликатами ...
В таблице questions
, соответствующей содержимому в столбцеdescription
и image
будут дублированы, и в таблице choices
, столбец choice
для этого конкретного вопроса, если это имеет смысл.
Итак, к чему все сводится, так это кchoices
таблица, я думаю.(извините, действительно не понимаю, как у меня возникла эта проблема при запуске ?).
Поскольку столбец questions
description ', может совпадать с .Но относитесь к изображению и ответам в зависимости от того, что изображение показывает.И иногда есть дублирующее изображение с описанием, изображение всего, но выбор в другом «порядке».
Трудно объяснить.Но интересными полями являются description
, source
и image
.И choice
в choices
таблице, но тогда они могут быть в другом порядке.
Я выполнил SQLfiddle с данными, которые я считаю актуальными.
CREATE TABLE IF NOT EXISTS `questions` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`order` int(11) NOT NULL DEFAULT 1,
`description` text DEFAULT NULL,
`source` text DEFAULT NULL,
`image` text DEFAULT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `choices` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`question_id` int(10) unsigned NOT NULL,
`choice` text DEFAULT NULL,
`correct` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `choices_question_id_foreign` (`question_id`),
CONSTRAINT `choices_question_id_foreign` FOREIGN KEY (`question_id`) REFERENCES `questions` (`id`) ON DELETE CASCADE
) DEFAULT CHARSET=utf8;
INSERT INTO `questions` (`order`, `description`, `source`, `image`) VALUES
('1', 'Is the earth is flat?', null, 'eerrff.png'), #ID 1 (NOT DUPLICATE, NO SOURCE?)
('1', 'Is the earth is flat?', 'In a very special community, it is', 'eerrff.png'), #ID 2 (DUPLICATES)
('1', 'Is the earth is flat?', 'In a very special community, it is', 'eerrff.png'), #ID 3 (DUPLICATES)
('1', 'Is the earth is flat?', 'In a very special community, it is', 'eerrff.png'), #ID 4 (DUPLICATES)
('1', 'Is the earth is flat?', 'In a very special community, it is', 'eerrff.png'), #ID 5 (DUPLICATES)
('1', 'Is the earth is flat?', 'In a very special community, it is', 'eerrff.png'), #ID 6 (DUPLICATES)
('1', 'Is the earth is flat?', 'In a very special community, it is', 'eerrff.png'), #ID 7 (DUPLICATES)
('1', 'Is the earth is flat?', 'In a very special community, it is', 'eerrff.png'), #ID 8 (DUPLICATES)
('1', 'Is the earth is flat?', 'In a very special community, it is', 'eerrff.png'), #ID 9 (DUPLICATES)
('1', 'Look at the image, what is correct?', 'source', 'oopp.png'), #ID 10 (DUPLICATE WITH #12)
('1', 'Look at the image, what is correct?', 'source', 'qqww.png'), #ID 11 (NOT DUPLICATE, LOOK CHOICES)
('1', 'Look at the image, what is correct?', 'source', 'oopp.png'), #ID 12 (DUPLICATE WITH #10)
('1', 'Look at the image, what is correct?', 'source', 'oopp.png'); #ID 13 (NOT DUPLICATE, LOOK CHOICES)
INSERT INTO `choices` (`question_id`, `choice`, `correct`) VALUES
('1', 'Yes', 1),
('1', 'No', 0),
('2', 'Yes', 1),
('2', 'No', 0),
('3', 'No', 0),
('3', 'Yes', 1),
('4', 'Yes', 1),
('4', 'No', 0),
('5', 'No', 0),
('5', 'Yes', 1),
('6', 'Yes', 1),
('6', 'No', 0),
('7', 'Yes', 1),
('7', 'No', 0),
('8', 'No', 0),
('8', 'Yes', 1),
('9', 'Yes', 1),
('9', 'No', 0),
('10', 'First is corrct', 1),
('10', 'second', 0),
('10', 'third', 0),
('10', 'fourth', 0),
('11', 'b', 0),
('11', 'c', 0),
('11', 'Number A', 1),
('11', 'd', 0),
('12', 'third', 0),
('12', 'second', 0),
('12', 'First is corrct', 1),
('12', 'fourth', 0),
('13', 'That guy on the left is doin it wrong', 0),
('13', 'That guy on the right is doin it wrong', 0),
('13', 'That guy in yellow is doin in right', 1),
('13', 'That guy green is doin it right', 0);
Ожидаемый результат: Удалите дубликаты из таблицы questions
, в зависимости от того, какой результат строк отличается от choices
.
.