我正在运行一个SQL查询,它将排队列表与引用列表进行比较,以查找有关队列中项目(详细信息)的信息。细节有数字(在下面的例子中它们是40,26和26-1)。我在队列中添加了4个细节26和2个细节40但是当我运行此查询时:
SELECT workingQueue.orderID, workingQueue.toolNum, workingQueue.detailNum, details.detailNum
FROM workingQueue
INNER JOIN details
WHERE workingQueue.toolNum = details.tool
AND workingQueue.detailNum = details.detailNum
它给出了队列中的那些6的列表以及与每个细节26重合的细节26-1的实例。它就像
workingQueue.detailNum = details.detailNum
没有给出精确的比较。如果有帮助,detailNum字段是varchar。对于我做错了什么,有什么想法吗?或者这只是必须以某种方式解决的SQL语言的本质?
输出如下:
编辑:当我这样做时输出相同:
SELECT workingQueue.orderID, workingQueue.toolNum, workingQueue.detailNum, details.detailNum
FROM workingQueue
INNER JOIN details
ON workingQueue.toolNum = details.tool
AND workingQueue.detailNum = details.detailNum
答案 0 :(得分:0)
INNER JOIN
需要ON
来指定join子句:
SELECT workingQueue.orderID, workingQueue.toolNum, workingQueue.detailNum, details.detailNum
FROM workingQueue
INNER JOIN details
ON workingQueue.toolNum = details.tool
AND workingQueue.detailNum = details.detailNum
答案 1 :(得分:0)
在工作队列中,我的数据类型错误(INT而不是VARCHAR)。 IT正在将一个数字与一个字符串进行比较,并通过将字符串26-1转换为数字26来做到最好。愚蠢的错误。谢谢大家!