在H2数据库中SQL不加入表,以下查询输出一行:
SELECT NAME as Product,DATE,RATE,QTY FROM BILL WHERE DATE LIKE '%9-10-2016'
但是在加入另一个数据库的H2数据库中,它输出额外的3行:
select BILL.NAME as product,
COMPANY.NAME AS Company,
BILL.DATE as ddate,
BILL.RATE as rate,
BILL.QTY as quantity
FROM BILL INNER JOIN COMPANY ON BILL.DATE LIKE '%9-10-2016'
注意 - “COMPANY”列从该数据库中为复制行选择随机名称。
我在这里做错了什么?我认为问题在于连接表。但是我自己也搞清楚了!
更新 也许我错过了另一个要加入的表,它被称为“ITEM”,其中插入了“BILL.NAME”数据。在“ITEM”表中有一个名为“COMPANY_ID”的列,它引用了“COMPANY”表“ID”列。
以下是我对查询的新IDEA,但结果相同:
select BILL.NAME as product,
COMPANY.NAME AS Company,
BILL.DATE as ddate,
BILL.RATE as rate,
BILL.QTY as quantity FROM BILL INNER JOIN COMPANY ON COMPANY.ID=ITEMS.COMPANY_ID INNER JOIN ITEMS WHERE BILL.DATE LIKE '%9-10-2016';
在数据库中我有3个表 比尔 2.项目 3.公司
BILL表包含以下列:
billno,batch,product_name,qty,rate.
此BILL表用于保存销售发票明细。
ITEM表格包含以下栏目:
product_name,batch,qty,rate,expire_date,company_id
此ITEM表用于存储我从公司购买的产品。
COMPANY表格包含以下栏目:
id,name,address,cell
该公司表用于存储公司详细信息。并加载到javafx组合框。如果选择了一个,它将自动从COMPANY表中获取ID并插入ITEM.COMPANY_ID。
好吧,现在我需要设计一个查询来从BILL表中获取销售历史记录。此外,作为额外信息,我想表明哪家公司的产品已售罄。
希望你们现在能够帮助我了!
答案 0 :(得分:0)
您可能需要在ON子句中编写其他JOIN条件。 它应该包含一些链接表(账单到公司)的密钥。
如果你的" bill"表和" id"在您的公司表中查询应如下所示
select BILL.NAME as product,COMPANY.NAME AS Company,BILL.DATE as ddate,BILL.RATE as rate,BILL.QTY as quantity
FROM BILL
INNER JOIN COMPANY ON bill.company_id = company.id
WHERE BILL.DATE LIKE '%9-10-2016'