比较行名称与sql中的一个单元格

时间:2014-09-10 16:21:35

标签: sql select

我有两张桌子。一个表有id,date,menu1,menu2,menu3,另一个表有id,id_date,number,menu_number。

在第二个表中,有关于在特定日期订购菜单的用户的数据。例如:ID:1 ID_Date:2014-09-09 Number:4000 Menu_Number:Menu1。有了这些信息,我想在第一个表格中列出这个日期的数字,日期和菜单。

SELECT DISTINCT 
    B.ID, B.ID_Date, B.Menu, S.date 
FROM 
    ordering B, menu_plan S 
WHERE 
    B.ID_Date = S.Date 
    AND B.Number = '4000859'

此SQL语句仅提供特定日期的菜单编号。但我想从表1中的特定日期菜单中获取内容。它是如何工作的?或者我应该以另一种方式进行操作并在第二个表格而不是菜单编号中写入完整菜单?

1 个答案:

答案 0 :(得分:0)

SELECT DISTINCT 
    B.ID, B.ID_Date, 
    Menu =
        CASE S.menu_number
            WHEN 'Menu1' THEN B.menu1
            WHEN 'Menu2' THEN B.menu2
            WHEN 'Menu3' THEN B.menu3
            ELSE 'Unknown'
        END,
    S.date
FROM 
    ordering B
    JOIN menu_plan S ON B.ID_Date = S.Date 
WHERE 
    B.Number = '4000859'