Во-первых, как говорили другие, если у вас есть возможность, вы должны действительно пересмотреть структуру вашей базы данных, то, что у вас есть сейчас, не имеет особого смысла.
Однако я 'Я был в ситуации «создания отчетов из существующего кода», поэтому я знаю, что вы, возможно, вообще не сможете этого сделать;если это действительно ваш случай, то следующий запрос должен помочь вам значительно улучшить скорость:
SELECT
`Record_Number`,
Concat(Name, ' ', Group_Concat(Value ORDER BY rn ASC SEPARATOR ' ')) AS Request
FROM
`Ordered_Items` oi
LEFT OUTER JOIN `Ordered_Options` oo ON (oo.Ordered_Items_rn = oi.Record_Number)
GROUP BY
oi.Record_Number
Что должно дать вам что-то вроде:
Record_Number Request
1 Pizza Jane Doe Pepperoni
2 Fries Bobby Table French
Поскольку вы новичок здесь, пожалуйста,не забудьте принять решение, нажав на стрелку слева, это решит вашу проблему.Если это не так, пожалуйста, укажите причину в комментарии к этому ответу.
Пример базы данных, которую я использовал для этого:
--
-- Table structure for table `Ordered_Items`
--
CREATE TABLE IF NOT EXISTS `Ordered_Items` (
`Record_Number` int(11) NOT NULL,
`Name` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `Ordered_Items`
--
INSERT INTO `Ordered_Items` (`Record_Number`, `Name`) VALUES
(1, 'Pizza'),
(2, 'Fries');
-- --------------------------------------------------------
--
-- Table structure for table `Ordered_Options`
--
CREATE TABLE IF NOT EXISTS `Ordered_Options` (
`Ordered_Items_rn` int(11) NOT NULL,
`Value` text NOT NULL,
`rn` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `Ordered_Options`
--
INSERT INTO `Ordered_Options` (`Ordered_Items_rn`, `Value`, `rn`) VALUES
(1, 'Jane', 43),
(1, 'Doe', 44),
(1, 'Pepperoni', 45),
(2, 'Bobby', 43),
(2, 'Table', 44),
(2, 'French', 45);