如何将一个表中的用户值查询到列标题并在标题下获取值?

时间:2012-10-27 04:44:16

标签: php mysql

情况

我有两张桌子:

tables

  • SGL =单身(室内一人)
  • DBL = Double(房间里有两个人)
  • TPL =三人(三人)。

等等。 (CHD =室内儿童;折扣入住率)。

clients 表包含用户插入的值。 tourprices 表是房型的预设费率。

问题

有没有办法查询,以便将用户插入的roomtype与tourprices表的列标题进行比较,结果是该列标题下的日期价格?

例如:用户希望在2012年2月27日预订两人(DBL)。如何编写查询以根据给定的?

提取200美元的费率
SELECT c.roomtype, t.SGL, t.DBL, t.TPL, t.QUD, t.CHD
FROM clients c, tourprices t
WHERE c.roomtype = ??????

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以使用CASE语句查看Roomtype的值,并从Tourprices中获取具有该类型的相应列以确定价格。

SELECT c.Roomtype
   , CASE
        WHEN c.Roomtype = 'SGL' THEN tp.SGL
        WHEN c.Roomtype = 'DBL' THEN tp.DBL
        WHEN c.Roomtype = 'TPL' THEN tp.TPL
        WHEN c.Roomtype = 'QUD' THEN tp.QUD
        WHEN c.Roomtype = 'CHD' THEN tp.CHD
     END AS RateOfTour
FROM Clients AS c
INNER JOIN Tourprices AS tp ON c.tourstart = tp.tourstartp