来自绝对初学者的SQL查询问题

时间:2018-11-21 17:21:43

标签: sql

所有,我是SQL的新手,正在尝试将查询组合在一起。我有两个tablesusersorders。我想从orders返回某些字段,并将结果附加到users的字段中。两个表中的公共字段是employeeID。我的查询返回语法错误。我已经尝试了几种不同的方式,分别是内部联接,左右联接,完全联接(这里是在黑暗中射击。正如我说的,我对此很陌生)。

查询如下:

SELECT orders.clientid, orders.ordertrackingid, orders.clientrefno, orders.dconame, orders.dstreet, orders.dcity, orders.dzip, orders.dzone, orders.employeeid, users.username
where orders.status = 'n'
inner join orders on users.employeeid = orders.employeeid;

我从这里得到的错误是在这里:

SQL错误[156] [S0001]:关键字“内部”附近的语法不正确。   关键字“内部”附近的语法不正确。   关键字“内部”附近的语法不正确。

任何建议或帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

查询结构通常是:

SELECT -> FROM - > [WHERE] -> [GROUP BY] -> [HAVING] -> [ORDER BY] -> . . .

[]表示选项子句。

因此,我会将您的查询重写为:

select o.clientid, o.ordertrackingid, o.clientrefno, o.dconame, o.dstreet, o.dcity, o.dzip, o.dzone, o.employeeid, u.username 
from users u inner join 
     orders o
     on u.employeeid = o.employeeid
where o.status = 'n';

答案 1 :(得分:0)

我没有看到错误消息,但是您似乎错过了添加“ FROM用户”的过程。还应该在INNER JOIN之后。您可以在此处查看更正的脚本:

SELECT orders.clientid
    , orders.ordertrackingid
    , orders.clientrefno
    , orders.dconame
    , orders.dstreet
    , orders.dcity
    , orders.dzip
    , orders.dzone
    , orders.employeeid
    , users.username 
FROM users
inner join orders on users.employeeid = orders.employeeid
where orders.status = 'n' ;

答案 2 :(得分:0)

只是您错过了一个要联接的表,该表是具有from子句的用户

SELECT orders.clientid, 
orders.ordertrackingid, 
orders.clientrefno, orders.dconame, 
orders.dstreet, orders.dcity, 
orders.dzip, orders.dzone, 
orders.employeeid, users.username 
from users
inner join orders on 
users.employeeid = orders.employeeid
where orders.status = 'n'  ;