1

我是 SQL Server 的新手,我正在尝试在我拥有的一些表之间进行内部连接。

以下代码有效:

select 
tb_itens_pedido_compra.id_compra, 
tb_itens_pedido_compra.id_item, 
tb_itens_pedido_compra.ip_descricao, 
tb_itens_pedido_compra.ip_quantidade, 
tb_itens_pedido_compra.ip_valor, 
tb_fornecedores.nome_fornecedor
from tb_itens_pedido_compra, 
tb_pedido_compra 
inner join tb_fornecedores on tb_fornecedores.id_fornecedor = tb_pedido_compra.id_fornecedor

但是当我尝试这样做时:

select 
tb_itens_pedido_compra.id_compra, 
tb_itens_pedido_compra.id_item, 
tb_itens_pedido_compra.ip_descricao, 
tb_itens_pedido_compra.ip_quantidade, 
tb_itens_pedido_compra.ip_valor, 
tb_fornecedores.nome_fornecedor,
tb_produto.nome_produto 
from tb_itens_pedido_compra, 
tb_pedido_compra 
inner join tb_fornecedores on tb_fornecedores.id_fornecedor = tb_pedido_compra.id_fornecedor
inner join tb_produto on tb_produto.id_produto = tb_itens_pedido_compra.id_produto;

查询结果如下:

Mensagem 4104, Nível 16, Estado 1, Linha 12
O identificador de várias partes "tb_itens_pedido_compra.id_produto" não pôde ser    associado.

根据 SQL Server 文档,这应该被翻译成这样:

The multi-part identifier "%.*ls" could not be bound.

我能做些什么来完成这项工作?我使用内部连接错误吗?

4

1 回答 1

0

我认为您至少错过了一列要加入,建议也使用表别名

from tb_itens_pedido_compra as ipc
    inner join tb_pedido_compra as pc on pc.id_compra = ipc.id_compra
    inner join tb_fornecedores as f on f.id_fornecedor = pc.id_fornecedor
    inner join tb_produto as p on p.id_produto = ipc.id_produto

根据您的架构,这应该可以

于 2013-10-03T19:40:55.460 回答