此查询有效:
SELECT product_name, unit_price, order_due_date
FROM orders
FULL OUTER JOIN products ON orders.product_id = products.product_id
WHERE product_name = 'bun';
然而这个引发了一个错误:
ORA-00936:“缺少表达”
SELECT product_name, unit_price, order_due_date
FROM orders
FULL OUTER JOIN products ON orders.product_id = products.product_id
WHERE [category] = 'soft drink';
我无法确定第二个
的错误答案 0 :(得分:1)
如果查询中有多个表,则应始终限定列名。在您的第一个查询中,WHERE
子句正在撤消FULL JOIN
。事实上,我猜测INNER JOIN
是最合适的。如果订单的产品不在products
表中?
SELECT p.product_name, ?.unit_price, o.order_due_date
FROM orders o INNER JOIN
products p
ON o.product_id = p.product_id
WHERE p.product_name = 'bun';
对于您的第二个查询,[
和]
不是Oracle中的分隔符。要么把它们排除在外:
WHERE category = 'soft drink'
或者,如果由于某些不明确的原因,列名实际上有这些字符,那么使用双引号:
WHERE "[category]" = 'soft drink';