[英]SQL Select Data From 3 Tables
我正在为本地企业开发 C# 应用程序。 我想选择从SQL Server 2014数据库的3个表,即数据companyinfo
, invmain
, invtran
。
Companyinfo
存储业务名称, invmain
具有销售发票编号和日期信息,而invtran
具有 Invoice Transaction。
我正在使用这样的 SELECT 语句:
SELECT
companyinfo.name,
invmain.invno, invmain.date, invtrans.itemid, invtrans.unitprice
FROM
companyinfo, invmain, invtrans
WHERE
companyinfo.Id = 1
AND invmain.invno = 13
AND invtrans.invnumber = 13
但是,如果表之一没有数据,则返回 null。 有没有其他有效的方法来做到这一点?
使用正确的 ANSI/SQL JOIN 语法,如下所示:
SELECT
ci.name,
invmain.invno, invmain.date,
invtrans.itemid, invtrans.unitprice
FROM
companyinfo ci,
INNER JOIN
invmain m ON ci.companyId = m.companyId
INNER JOIN
invtrans it ON it.invo = m.invno
WHERE
companyinfo.Id = 1
并且您需要在表之间定义JOIN 条件以建立“链接”。 我选择了INNER JOIN
,它根据ON
关键字后定义的匹配条件,只返回存在于所涉及的两个表中的行。
如果您想从companyinfo
中选择没有任何相应发票的行,您还可以使用LEFT OUTER JOIN
而不是INNER JOIN
从没有任何发票的公司的companyinfo
取回数据
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.