SQL执行JOIN语句后提示';'附近语法错误的解决方法
你代码的问题是JOIN子句缺少必要的连接匹配条件(也就是ON子句)。
标准SQL中使用JOIN(默认是INNER JOIN的简写)关联两张表时,必须指定两张表的关联字段,否则数据库无法判断如何匹配两张表的数据,就会触发你遇到的语法报错。
你要实现自然连接有两种可行写法:
- 显式指定关联条件(更推荐,可读性高,结果可控)
你提供的场景中CUSTOMER和INVOICE表应该通过公共字段CUS_CODE关联,修改后代码如下:
SELECT CUSTOMER.CUS_CODE, CUSTOMER.CUS_LNAME, INVOICE.INV_NUMBER, INVOICE.INV_DATE FROM CUSTOMER JOIN INVOICE ON CUSTOMER.CUS_CODE = INVOICE.CUS_CODE;
- 使用
NATURAL JOIN关键字(自动匹配两张表中同名、同类型的字段作为关联条件,不需要写ON子句):
SELECT CUSTOMER.CUS_CODE, CUSTOMER.CUS_LNAME, INVOICE.INV_NUMBER, INVOICE.INV_DATE FROM CUSTOMER NATURAL JOIN INVOICE;
注意:优先选择第一种显式写关联条件的写法,避免两张表存在多个同名字段时,自动关联产生不符合预期的结果。
内容的提问来源于stack exchange,提问作者RobBob
相关产品推荐
相关产品推荐

