Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将行名称与sql中的一个单元格进行比较_Sql_Select - Fatal编程技术网

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

将行名称与sql中的一个单元格进行比较,sql,select,Sql,Select,我有两张桌子。一个表具有id、日期、菜单1、菜单2、菜单3,另一个表具有id、id\u日期、编号、菜单号 在第二个表中,有关于在特定日期订购菜单的用户的数据。例如:ID:1 ID\u日期:2014-09-09编号:4000菜单\u编号:菜单1。有了这些信息,我想给出第一张表上的数字,日期和这个日期的菜单 SELECT DISTINCT B.ID, B.ID_Date, B.Menu, S.date FROM ordering B, menu_plan S WHERE

我有两张桌子。一个表具有id、日期、菜单1、菜单2、菜单3,另一个表具有id、id\u日期、编号、菜单号

在第二个表中,有关于在特定日期订购菜单的用户的数据。例如:ID:1 ID\u日期:2014-09-09编号:4000菜单\u编号:菜单1。有了这些信息,我想给出第一张表上的数字,日期和这个日期的菜单

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中得到这一天菜单上的内容。它是如何工作的?或者我应该用另一种方式,在第二个表格中,而不是在菜单号中写完整的菜单?

-在ANSI-92 SQL标准(20多年前)中,旧样式的逗号分隔的表格列表样式被正确的ANSI
JOIN
语法所取代,因此不鼓励使用它。谢谢你的提示!谢谢它可以工作,但只有一件事,没有行名“Menu”,它可以工作:
B.ID\u日期,CASE S.Menu\u编号当“Menu1”。。。结束,S.date
。但是我怎样才能得到像菜单一样的行名呢?使用
Menu=CASE…
它不起作用。感谢CASE语句的提示。但它只能这样工作:
选择B.ID,CASE。。。当“菜单1”出现时。。。结束为菜单,S.date
选择不同的S.ID,B.ID_日期,菜单=案例B.Menu编号当'Menu1'时,然后S.Menu1当'Menu2'时,然后S.Menu2当'Menu3'时,然后S.Menu3其他'Unknown'结束,S.date从B加入菜单订购B.ID_日期=S.date其中B。[Number]=“4000859”我想您的查询中的别名[s]&[b]有问题。谢谢您接受我的回答!
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'