对于我的作业,我遇到了一个问题,我需要编写一个查询来连接以下两个表来给我一个输出表,如下所示:
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
任何帮助,提示,指示或建议都是非常有必要的。这是我第一次在这里提出问题。我要感谢大家回答其他问题,这些问题对我以前的问题有很大的帮助,并推迟了我的第一个问题。
答案 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;