如何将varchar连接到整数

时间:2018-01-09 10:05:29

标签: sql database postgresql

对于我的作业,我遇到了一个问题,我需要编写一个查询来连接以下两个表来给我一个输出表,如下所示:

     select order_number, Menu_Items
     from d.orders
     join d.menu as m
     on order items = menu items  

虽然我认为这是正确的方法,但我认为它需要“演员”和“演员”。或者'转换'它可以起作用,因为许多物品可以按任何订单(即有两个汉堡包)进行订购。当我需要将字符串与正在订购的每个项目相关联时,就会遇到挑战。

我得到的错误如下:

    operator does not exist: integer = character varying[]
      Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
      Position: 438

据我所知,我试图先将一个整数加入一个变量字符,然后将一个字符串与变量字符相关联。

我想要的解决方案可能类似于:

       order_no . order_items   
       101      . hamburger, hamburger, fries, drink
       102      . hotdog, onion rings, drink

我开始使用的表格如下:

               ORDER TABLE
       order_number . order_items
           101      . 1,1,2,3
           102      . 5,4,3

                 MENU TABLE
          menu_item  . menu_items_number
       hamburger     .   1
       fries         .   2
       drink         .   3
       onion rings   .   4
       hot dog       .   5

任何帮助,提示,指示或建议都是非常有必要的。这是我第一次在这里提出问题。我要感谢大家回答其他问题,这些问题对我以前的问题有很大的帮助,并推迟了我的第一个问题。

1 个答案:

答案 0 :(得分:0)

您需要一个联接表:

CREATE TABLE orders_items (order_id integer NOT NULL, item_id integer NOT NULL);

这将允许您获取项目:

SELECT orders.id, orders_items.item_id FROM orders LEFT JOIN orders_items ON orders.id = orders_items.order_id;