我正在构建一个应用程序来管理借给员工的工具,并且该表的设置方式是有一个具有唯一工具代码和序列号的工具表和一个包含唯一工具代码的贷款表和返回日期。每次有贷款时,它都会创建一个新条目,贷款创建时的返回日期为空。
我目前的查询基于文本输入搜索所有工具。我已经尝试了很多内部连接的代码,但没有成功,而且由于我对 SQL 不是很有经验,所以我不知道如何让它工作。
SELECT [Tools].[ToolID], [Tools].[Type], [Tools].[Brand], [Tools].[Serial], [Tools].[Year], [Tools].[Code] FROM [Tools]
WHERE ([Tools].Serial LIKE '%234%' OR [Tools].Code LIKE '%234%')
当我在贷款数据库中搜索工具时会出现我的问题。我希望它显示工具表中的工具:
A)在贷款数据库中没有条目(即新工具)
B) 数据库中的所有条目都有归还日期(工具已归还)
谢谢。
编辑:结合答案中的两个查询
SELECT [Tools].[ToolID], [Tools].[Type], [Tools].[Brand], [Tools].[Serial], [Tools].[Year], [Tools].[Code]
FROM [Tools] left outer join
Loan ON [Tools].code = Loan.toolcode
WHERE Loan.toolcode is null AND ([Tools].Code LIKE '%234%' OR [Tools].Serial LIKE '%234%')
UNION
SELECT [Tools].[ToolID], [Tools].[Type], [Tools].[Brand], [Tools].[Serial], [Tools].[Year], [Tools].[Code]
FROM Loan
INNER JOIN Tools ON Tools.Code = Loan.ToolCode
GROUP BY [Tools].[ToolID], [Tools].[Type], [Tools].[Brand], [Tools].[Serial], [Tools].[Year], [Tools].[Code]
HAVING count(returndate) = count(*)