У меня нет большого опыта работы с реляционными базами данных, и я некоторое время борюсь с этой проблемой, но без особой удачи ...
Итак, у меня есть несколько таблиц:
CREATE TABLE `shows` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`show_name` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `playlists` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` int(11) NOT NULL,
`time` int(11) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `items_playlists` (
`item_id` int(11) NOT NULL,
`playlist_id` int(11) NOT NULL,
PRIMARY KEY (`item_id`,`playlist_id`),
KEY `fk01` (`item_id`),
KEY `fk02` (`playlist_id`)
);
CREATE TABLE `subtitles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`line1` varchar(500) NOT NULL,
`line2` varchar(500) NOT NULL,
`line3` varchar(500) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `items_subtitles` (
`item_id` int(11) NOT NULL,
`subtitle_id` int(11) NOT NULL,
PRIMARY KEY (`item_id`,`subtitle_id`),
KEY `fk01` (`item_id`),
KEY `fk02` (`subtitle_id`)
);
CREATE TABLE `subtitles_txt` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`subtitle_text` varchar(500) NOT NULL,
PRIMARY KEY `id` (`id`)
);
playlists.name
фактически относится к значению shows.id
.
subtitles.line1
, subtitles.line2
и subtitles.line3
каждая соответствует subtitles_txt.id
.
Мне нужно получить все строки из всех таблиц на основе значения subtitles_txt.subtitle_text
с условиемэто значение имеет подстановочный знак справа (...WHERE subtitle_text LIKE 'value%'
).
Я думаю, что, к сожалению, я не могу изменить структуру таблиц, потому что это часть какого-то огромного проекта, и от некоторых из этих таблиц зависит множество других вещей,поэтому я действительно должен сделать из этого какой-то запрос ...