我有点困惑。它看起来很简单,我确信这个问题之前已经解决并发布了。然而,经过几个小时的搜索,我仍然没有找到这个小问题的解决方案:
t1.ENTRY 是复合键的第一部分 t1.COPY 是复合密钥的第二部分
SELECT t1.ENTRY, t1.COPY, t1.TTYPE, t2.ENTRY FROM SymbolText t1
INNER JOIN Symboldata t2 ON t1.ENTRY =t2.LPNTR
WHERE t1.ENTRY = 'LS-85601366-E515-4B3D-BE10-4D8C01F0E08F'
这是我从上面的查询中得到的:
进入 | 复制 | T类型 | 进入 |
---|---|---|---|
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 1 | 18 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 2 | 14 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 3 | 18 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 4 | 14 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 5 | 18 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 6 | 14 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 7 | 18 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 8 | 15 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 9 | 528 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 10 | 5 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 11 | 527 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 12 | 522 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 13 | 534 | CIM08-50-10 |
LS-85601366-E515-4B3D-BE10-4D8C01F0E08F | 14 | 523 | CIM08-50-10 |
我想获取所有记录的 t2.ENTRY
t1.ENTRY = 'LS-85601366-E515-4B3D-BE10-4D8C01F0E08F' and
t1.TTYPE = '528' and
t1.TTYPE = '5'
我真正想要的是这样的:
进入 |
---|
CIM08-50-10 |
但是如果我像这样运行查询:
SELECT t2.ENTRY FROM SymbolText t1
INNER JOIN Symboldata t2 ON t1.ENTRY =t2.LPNTR
WHERE t1.ENTRY = 'LS-85601366-E515-4B3D-BE10-4D8C01F0E08F' AND (t1.TTYPE = '5' AND t1.TTYPE = '528')
我不会得到任何结果,因为显然没有这样的记录同时具有 TTYPE = '5' 和 TTYPE '528'。我只需要根据两个键的组合返回一条记录。
我缺少什么提示吗?
我希望这对你有帮助:
SELECT t1.ENTRY, t1.COPY, t1.TTYPE, t2.ENTRY FROM SymbolText t1
INNER JOIN Symboldata t2 ON t1.ENTRY =t2.LPNTR
WHERE t1.ENTRY = 'LS-85601366-E515-4B3D-BE10-4D8C01F0E08F' AND
(t1.TTYPE = '5' OR t1.TTYPE = '528')
我在您的查询中将 AND 替换为 OR。
附注如果 TTYPE 是数字,则应指定不带引号:
(t1.TTYPE = 5 OR t1.TTYPE = 528)
。