Witam, mam taką oto konstrukcję dla wyszukiwarki autobusów MZK
Kod
--
-- Struktura tabeli dla  `mzk_cms_autobusy`
--

CREATE TABLE `mzk_cms_autobusy` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'unikalny alias autobusu',
  `nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa autobusu, np.: numer',
  `opis` text collate utf8_polish_ci COMMENT 'opis autobusu',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `UNIQUE` (`alias`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='Tabela z autobusami' AUTO_INCREMENT=9;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_godziny`
--

CREATE TABLE `mzk_cms_godziny` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `oid` smallint(5) unsigned default '0' COMMENT 'id odjazdu',
  `pid` smallint(5) unsigned default '0' COMMENT 'id przystanku',
  `godzina` mediumint(8) unsigned default '0',
  PRIMARY KEY  (`id`),
  KEY `ODJAZDY` (`oid`),
  KEY `PRZYSTANKI` (`pid`),
  KEY `Godzina` (`godzina`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='godzina przyjazdu na przystanek' AUTO_INCREMENT=2629;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_kierunki`
--

CREATE TABLE `mzk_cms_kierunki` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'alias kursu',
  `nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa kursu',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `alias` (`alias`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='kierunki jazdy' AUTO_INCREMENT=12;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_kursy`
--

CREATE TABLE `mzk_cms_kursy` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `aid` smallint(5) unsigned default '0' COMMENT 'id autobusu',
  `kid` smallint(5) unsigned default '0' COMMENT 'id kierunku',
  `przystanki` text collate utf8_polish_ci,
  `waznosc` timestamp NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`),
  KEY `AUTOBUSY` (`aid`),
  KEY `KIERUNKI` (`kid`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='kursy autobusów' AUTO_INCREMENT=15;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_legenda`
--

CREATE TABLE `mzk_cms_legenda` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `skrot` varchar(5) collate utf8_polish_ci default NULL,
  `opis` text collate utf8_polish_ci,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `skrot` (`skrot`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=8;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_legenda_odjazdy`
--

CREATE TABLE `mzk_cms_legenda_odjazdy` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `oid` smallint(5) unsigned default '0' COMMENT 'id odjazdu',
  `lid` smallint(5) unsigned default '0' COMMENT 'id skrótu w legendzie',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=268;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_odjazdy`
--

CREATE TABLE `mzk_cms_odjazdy` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `nazwa` varchar(100) collate utf8_polish_ci default NULL,
  `tid` smallint(5) unsigned default '0' COMMENT 'id trasy',
  `dni` set('1','2','3','4','5','6','7') collate utf8_polish_ci NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `TRASY` (`tid`),
  KEY `DNI` (`dni`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='Odjazdy autobusów' AUTO_INCREMENT=187;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_przystanki`
--

CREATE TABLE `mzk_cms_przystanki` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `alias` varchar(100) collate utf8_polish_ci default NULL COMMENT 'lias przystanku',
  `nazwa` varchar(100) collate utf8_polish_ci default NULL COMMENT 'nazwa przystanku',
  `x` float unsigned default NULL COMMENT 'szerokość geograficzna przystanku',
  `y` float unsigned default NULL COMMENT 'długość geograficzna przystanku',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `UNIQUE` (`alias`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='przystanki autobusowe' AUTO_INCREMENT=63;

-- --------------------------------------------------------

--
-- Struktura tabeli dla  `mzk_cms_trasy`
--

CREATE TABLE `mzk_cms_trasy` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `kid` smallint(5) unsigned default '0' COMMENT 'id kursu',
  `przystanki` text collate utf8_polish_ci COMMENT 'przystanki przez które jeżdżą autobusy w formie |1|2|3|',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='trasy, którymi jedzie autobus' AUTO_INCREMENT=44;


Do wyszukiwania konkretnych autobusów wykorzystuje takie zapytanie:

Kod
SELECT  `g` . * ,  `o`.`dni`
FROM  `mzk_cms_godziny` AS  `g`
LEFT JOIN  `mzk_cms_przystanki` AS  `p` ON  `p`.`id` =  `g`.`pid`
LEFT JOIN  `mzk_cms_odjazdy` AS  `o` ON  `o`.`id` =  `g`.`oid`
LEFT JOIN  `mzk_cms_trasy` AS  `t` ON  `t`.`id` =  `o`.`tid`
LEFT JOIN  `mzk_cms_kursy` AS  `k` ON  `k`.`id` =  `t`.`kid`
LEFT JOIN  `mzk_cms_kierunki` AS  `ki` ON  `ki`.`id` =  `k`.`kid`
LEFT JOIN  `mzk_cms_autobusy` AS  `a` ON  `a`.`id` =  `k`.`aid`
WHERE (
`t`.`przystanki` LIKE  '%|16|%|6|%'
)
AND (
`o`.`dni` LIKE  '%1%'
)
AND (
`g`.`pid` =16
)
AND (
`godzina`
BETWEEN 72600
AND 73200
)
ORDER BY  `g`.`godzina` ASC


wyszukuje wszystkie autobusy, które odjeżdżają w poniedziałki z przystanku #16 miedzy godziną 20:10 a 20:20, które przejeżdżają przez przystanek #6

Jest możliwość ułatwienia tego zapytania?