SQL双表查询语法

时间:2015-06-03 17:28:39

标签: sql ms-access

在我的Access数据库中,我有一个名为ItemPlayerConnection的表,它保存一个名为Item的整数,另一个名为Player的整数,最后一个名为Inventory的布尔值。我还有另一个名为Item的链表 - 在该表中,我有一个名为ItemID主键,以及一个名为ItemIsWeapon的布尔值。

我想要做的是从Item表格中选择所有ItemPlayerConnection个整数,其中Player列的特定值为ItemID列,其值为{{1} } Item表中的ItemIsWeapon上有true

我尝试做的是将其分为两个步骤:首先选择为item设置player的所有行,然后从那里选择包含ItemIsWeapon的项目{1}}上{1}}。

这是我的问题:

true

我确信'TestPlayer'存在 - 但是,我得到了一个无法解释的

  

语法错误。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您可能打算使用Subquery之类的

SELECT ItemID 
FROM Item 
WHERE ItemIsWeapon=true
AND ItemID IN (SELECT Item
FROM ItemPlayerConnection
WHERE Player='TestPlayer'
AND Inventory=true)

(OR)使用JOIN之类的

SELECT i.ItemID 
FROM Item i JOIN ItemPlayerConnection ipc ON i.Item = ipc.ItemID
WHERE i.ItemIsWeapon=true
AND ipc.Player='TestPlayer'
AND ipc.Inventory=true