以下是我的查询
SELECT
trt.barcode,
trt.emp_id,
et.emp_name,
trt.port_id,
rt.emp_id,
et.emp_name,
rt.port_id,
rt.`floor`,
trt.`floor`
FROM tbl_employee et
INNER JOIN tbl_trns as trt
on et.emp_id= trt.emp_id
left outer join tbl_reg as rt
on trt.barcode = rt.barcode
inner join et
on rt.emp_id=et.emp_id;
此查询有什么问题?它没有给出唯一的表/别名错误。
答案 0 :(得分:0)
您正在使用别名et
两次。更改其中一个以使其独一无二p>
答案 1 :(得分:0)
您列出的第一个表格是tbl_employee
,您可以为其添加别名et
。您使用的最后一个表是一个名为et
的表。我假设您正在尝试加入同一张桌子。你可以使用同一个表两次,但每次都需要给它一个不同的别名。或者,如果您的RDMS支持,您可以使用公用表表达式。
答案 2 :(得分:0)
错误是恰当的。请注意您的代码块:
FROM tbl_employee et
INNER JOIN tbl_trns as trt
on et.emp_id= trt.emp_id
left outer join tbl_reg as rt
on trt.barcode = rt.barcode
inner join et
看到tbl_employee被命名为et
,然后上面一个块中的最后一行也是et
。命名tbl_employee et1
或emp
。
答案 3 :(得分:0)
这是正确的。
SELECT trt.barcode, trt.emp_id, et.emp_name, trt.port_id, rt.emp_id, et.emp_name, rt.port_id, rt.`floor`, trt.`floor` FROM tbl_employee et INNER JOIN tbl_trns as trt on et.emp_id= trt.emp_id left outer join tbl_reg as rt on trt.barcode = rt.barcode AND rt.emp_id=et.emp_id;
了解更多信息,请点击:http://www.kanzulashya.com/oralce-join/equi-join/