MYSQL从2表和组中选择

时间:2013-12-03 11:47:06

标签: php mysql codeigniter

其中一个保留了酒店的信息,其中一个将价格保持在日期范围内。

我的酒店信息表

CREATE TABLE IF NOT EXISTS `yurtici_oteller` (
  `yo_id` int(10) NOT NULL AUTO_INCREMENT,
  `yo_bolge_id` int(10) NOT NULL,
  `yo_konaklama` int(10) NOT NULL,
  `yo_isim` varchar(150) COLLATE utf8_turkish_ci NOT NULL,
  `yo_seo_isim` varchar(200) COLLATE utf8_turkish_ci NOT NULL,
  `yo_konum` varchar(300) COLLATE utf8_turkish_ci NOT NULL,
  `yo_resim` varchar(300) COLLATE utf8_turkish_ci NOT NULL,
  `yo_resim_k` varchar(300) COLLATE utf8_turkish_ci NOT NULL,
  `yo_video` varchar(1000) COLLATE utf8_turkish_ci NOT NULL,
  `yo_harita` varchar(1000) COLLATE utf8_turkish_ci NOT NULL,
  `yo_aciklama` text COLLATE utf8_turkish_ci NOT NULL,
  `yo_yemek` int(3) NOT NULL,
  `yo_oda` int(3) NOT NULL,
  `yo_hizmet` int(3) NOT NULL,
  `yo_aktivite` int(3) NOT NULL,
  `yo_genel_puan` int(3) NOT NULL,
  PRIMARY KEY (`yo_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=11 ;
INSERT INTO `yurtici_oteller` (`yo_id`, `yo_bolge_id`, `yo_konaklama`, `yo_isim`, `yo_seo_isim`, `yo_konum`, `yo_resim`, `yo_resim_k`, `yo_video`, `yo_harita`, `yo_aciklama`, `yo_yemek`, `yo_oda`, `yo_hizmet`, `yo_aktivite`, `yo_genel_puan`) VALUES
(9, 3, 4, 'DELPHİN DE LUXE RESORT ALANYA', 'delphin-de-luxe-resort-alanya', 'ALANYA / OKURCALAR', '', '', '', '', '<h1>OTEL HAKKINDA</h1>\r\n\r\n<p>Denize Uzaklığı (sıfır) , Hava Alanına Uzaklığı (90 km) , Şehir Merkezine Uzaklığı (10 km)</p>\r\n\r\n<h1>KONSEPT</h1>\r\n\r\n<div style="margin: 0px; padding: 0px; border: 0px; outline: 0px; font-size: 11px; background-color: rgb(210, 209, 208); color: rgb(0, 0, 0); font-family: Verdana, Geneva, sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 11px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-position: initial initial; background-repeat: initial initial;">ULTRA HER ŞEY DAHİL</div>\r\n\r\n<p style="text-align:start">Ultra her şey dahil sisteminde olup; a&ccedil;ık b&uuml;fe&nbsp;kahvaltı, &ouml;ğle ve akşam yemeği, brunch (Pazar&nbsp;g&uuml;nleri), &ccedil;ocuk akşam yemeği ile 10.00-24.00&nbsp;arası t&uuml;m yerli ve bazı ithal alkoll<span style="font-size:11px"><span style="font-family:verdana,geneva,sans-serif">&uuml; / alkols&uuml;z&nbsp;i&ccedil;ecekler &uuml;cretsizdir.</span></span></p>\r\n\r\n<h1>OTEL &Ouml;ZELLİKLERİ</h1>\r\n\r\n<p><span style="background-color:rgb(210, 209, 208); color:rgb(0, 0, 0); font-family:verdana,geneva,sans-serif; font-size:11px">Tesiste 2 adet y&uuml;zme havuzu, 2 adet &ccedil;ocuk&nbsp;havuzu, kapalı y&uuml;zme havuzu, kapalı &ccedil;ocuk&nbsp;havuzu, jakuzi havuzu, aquapark, ana restaurant,&nbsp;6 adet a la carte restaurant, fantasy-snack bar,&nbsp;Orient Cafe, havuz bar, Snack Bar, Delphin Pub,-&nbsp;Atlantis disko, vitamin bar, iskele bar, garden&nbsp;secret bar, relax bar, oda servisi, animasyon,&nbsp;mini club (4-12 yaş), emanet kasalar (odalarda),&nbsp;2 adet tenis kortu, T&uuml;rk Hamamı, sauna,&nbsp;buhar odası, fitness, masa tenisi, su topu, su&nbsp;jimnastiği, jimnastik, telefon, faks, internet,&nbsp;motorlu su sporları, tenis ekipmanları ve dersi&nbsp;(rezervasyonlu), masaj, kese, dalış okulu, video&nbsp;oyunları, estetik merkezi, alışveriş merkezi,&nbsp;kuaf&ouml;r, &ccedil;amaşır yıkama-&uuml;t&uuml;leme, doktor, bowling&nbsp;hizmetleri sunulmaktadır.</span></p>\r\n\r\n<h1>ODA &Ouml;ZELLİKLERİ</h1>\r\n\r\n<p><span style="background-color:rgb(210, 209, 208); color:rgb(0, 0, 0); font-family:verdana,geneva,sans-serif; font-size:11px">416 adet deluxe standartlı oda bulunmaktadır.&nbsp;Odalarda merkezi klima sistemi, uydu-TV,&nbsp;minibar (soft i&ccedil;ecekler), telefon, elektronik kasa&nbsp;ve f&ouml;n makinesi standart olarak mevcuttur.</span></p>\r\n\r\n<h1>AKTİVİTELER</h1>\r\n\r\n<p><strong>&Uuml;cretli Aktiviteler</strong><br />\r\nBowling , Banana , Bilardo , Dalgı&ccedil;lık Okulu , Jet Ski , Kano , Parasailing , Disco , Masaj<br />\r\n<strong>&Uuml;cretsiz Aktiviteler</strong><br />\r\nAerobic , Animasyon , Beach Voley , Dart , Masa Tenisi , Su Kayağı , Fitness , Hamam , Sauna , İnternet Wireless , Tenis Kortu.<br />\r\n&nbsp;</p>\r\n', 0, 0, 0, 0, 0),
(10, 4, 7, 'Deneme Oteli', 'deneme-oteli', 'asgasgasg', 'tatil_1_sifresi_1.jpg', 'tatil_1_sifresi_2.jpg', 'asgasgsga', 'sagsagsagsag', '<h1>OTEL HAKKINDA</h1>\r\n\r\n<p>hakkında</p>\r\n\r\n<h1>KONSEPT</h1>\r\n\r\n<p>konsept</p>\r\n\r\n<h1>OTEL &Ouml;ZELLİKLERİ</h1>\r\n\r\n<p>&ouml;zellik</p>\r\n\r\n<h1>ODA &Ouml;ZELLİKLERİ</h1>\r\n\r\n<p>Oda</p>\r\n\r\n<h1>AKTİVİTELER</h1>\r\n\r\n<p>aktivite</p>\r\n', 100, 100, 100, 100, 100);

价格表

CREATE TABLE IF NOT EXISTS `yurtici_otel_fiyatlar` (
  `yof_id` int(10) NOT NULL AUTO_INCREMENT,
  `yof_o_id` int(10) NOT NULL,
  `yof_a_id` int(10) NOT NULL,
  `yof_site` varchar(750) COLLATE utf8_turkish_ci NOT NULL,
  `yof_tarih_1` date NOT NULL,
  `yof_tarih_2` date NOT NULL,
  `yof_fiyat` varchar(20) COLLATE utf8_turkish_ci NOT NULL,
  `yof_fiyat_tur` int(1) NOT NULL,
  PRIMARY KEY (`yof_id`),
  KEY `of_fiyat_tur` (`yof_fiyat_tur`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=10 ;
INSERT INTO `yurtici_otel_fiyatlar` (`yof_id`, `yof_o_id`, `yof_a_id`, `yof_site`, `yof_tarih_1`, `yof_tarih_2`, `yof_fiyat`, `yof_fiyat_tur`) VALUES
(3, 9, 1, 'asgasg', '1111-12-29', '1111-11-11', '125', 2),
(4, 9, 2, 'deneme fiyat', '2013-11-20', '2014-12-20', '100', 2),
(5, 9, 1, 'qwtqwt', '2012-11-11', '2014-12-12', '1525', 2),
(6, 9, 3, 'asgasgags', '2013-12-04', '2013-12-05', '153', 2),
(7, 9, 6, '235235', '2013-04-12', '2013-04-19', '153', 2),
(8, 9, 8, 'asgasg', '2013-04-18', '2013-04-29', '315', 2),
(9, 10, 9, 'asgasg', '2013-04-11', '2013-04-18', '1521', 2);

Acenta表

CREATE TABLE IF NOT EXISTS `acentalar` (
  `a_id` int(10) NOT NULL AUTO_INCREMENT,
  `a_isim` varchar(150) COLLATE utf8_turkish_ci NOT NULL,
  `a_seo_isim` varchar(200) COLLATE utf8_turkish_ci NOT NULL,
  PRIMARY KEY (`a_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=10 ;
INSERT INTO `acentalar` (`a_id`, `a_isim`, `a_seo_isim`) VALUES
(1, 'Jolly Tur', 'jolly-tur'),
(2, 'BKM TUR', 'bkm-tur'),
(3, 'ANI TUR', 'ani-tur'),
(4, 'TURSAN TURİZM', 'tursan-turizm'),
(5, 'TATİL.COM', 'tatil-com'),
(6, 'TEZ TOUR', 'tez-tour'),
(7, 'TURON9', 'turon9'),
(8, 'GEZİNOMİ', 'gezinomi'),
(9, 'E TATİL', 'e-tatil');

在我的网站上,我需要mysql结果

hotel_name--->5 price from price table
hotel_name--->5 price from price table

5酒店和价格表的5种不同价格。

网站设计 http://img850.imageshack.us/img850/3172/6vu6.png

2 个答案:

答案 0 :(得分:0)

试试这个:

SELECT hi.hotel_name, p.price
FROM hotel_information hi
INNER JOIN price p ON hi.hotel_id = p.p_hotel_id
WHERE 'DateYouWant' between p.start_date AND p.end_date

如果您想要所有日期范围,请删除WHERE子句,但您应该将p.start_date和p.end_date添加到SELECT中,这样您就可以看到哪个价格属于哪个日期

答案 1 :(得分:0)

CREATE 
VIEW `view_hotel_and_price_table_together` AS
   select 
    `hotel`.`hotel_id` AS `hotel_id`,
    `hotel`.`hotel_name` AS `hotel_name`,
    `hotel`.`hotel_image` AS `hotel_image`,
    `price`.`price_id` AS `price_id`,
    `price`.`price` AS `price`,
    `price`.`start_date` AS `start_date`,
    `price`.`end_date` AS `end_date`
from
 (`hotel_table` `hotel`
  left join `price_table` `price` ON (`hotel`.`hotel_id` = `price`.`p_hotel_id`));

这是你的看法。如果你想要显示5条记录,你可以使用像

这样的东西
    SELECT `hotel_name`, `price` FROM `view_hotel_and_price_table_together` ORDER BY RAND() LIMIT 5