问题如下:
确定特定客户购买的图书。使用客户名称而不是客户编号执行搜索。使用替换变量并输入Jack Lucas作为客户名称。如果他购买了同一本书的多个副本,则不重复结果。
所以基本上我有4个表可以加入,包括Customers,Orders,Orderitems和Book。我想提示用户输入Jack Lucas。并显示杰克卢卡斯购买的书名结果。
SELECT b.title
FROM customers c
JOIN orders o
ON c.customerid = o.customerid
JOIN orderitems oi
ON o.orderno = oi.orderno
JOIN books b
ON oi.isbn = b.isbn
WHERE c.firstname = &firstname
AND c.firstname = 'JAKE';
我试图运行上面的代码,但在我输入' JAKE'后,它显示了我的错误,
ORA-00904:" JAKE":无效的标识符 00904. 00000 - "%s:无效标识符" *原因:
*行动: 行错误:9列:21
我想知道我做错了什么。请指教。提前谢谢。
答案 0 :(得分:2)
在'
变量周围添加&
单引号。
在WHERE
子句而不是两个条件检查同一列名AND
,使用任何一个。所以下面的代码将起作用。
SELECT b.title
FROM customers c
JOIN orders o ON c.customerid = o.customerid
JOIN orderitems oi ON o.orderno = oi.orderno
JOIN books b ON oi.isbn = b.isbn
WHERE c.firstname = '&firstname'