如何使IN条件检查设定值

时间:2017-04-09 16:47:34

标签: mysql sql oracle-sqldeveloper

基本上我有两张桌子

MY_CHARACTER:
 _________________________________________________
| char_ID |   char_name | char_class | char_rank |
|------------------------------------------------|
|    1    |   Aragorn   |  Fighter   |     99    |
|    2    |   Legolas   |  Archer    |     90    |
|    3    |   Smeagle   |  Spy       |     20    |
|________________________________________________|

EQUIPMENT:
     _________________________________________________
    | equip_ID | equip_name  | equip_owner | required  |
    |--------------------------------------------------|
    |    1    | The one ring |     3       |     99    |
    |    2    | Longsword    |     1       |     90    |
    |    3    | Waistcloth   |     3       |     10    |
    |    4    | Nazguls Mask |     2       |     95    |
    |__________________________________________________|

现在我想要的是使用IN条件制作一个选择命令,这将给出我没有资格使用的设备列表。因此,在这个例子中,Smeagle没有资格佩戴一枚戒指,Legolas无法使用nazguls面具。

我的命令看起来像这样

SELECT equip_name, equip_owner, required
FROM EQUIPMENT WHERE required IN (SELECT char_rank MY_CHARACTER);

现在这只会打印出需要的设备= char_rank但是我想打印出一个选择,其中所需的设备级别高于char_rank。知道怎么样?理想情况下使用IN条件。

编辑:为了清除我想要的地方的混乱,基本上我的命令现在正在检查EQUIPMENT.required=MY_CHARACTER.char_rank我想要的是它检查EQUIPMENT.required>MY_CHARACTER.char_rank

2 个答案:

答案 0 :(得分:0)

我会使用var socket = io.connect('http://localhost:3000');

执行此操作
join

答案 1 :(得分:0)

因此,如果您想要一个项目列表,不允许使用某个字符,您可以稍微修改您的SQL:

SELECT 
  equip_name, equip_owner, required
FROM 
  EQUIPMENT 
WHERE 
  required > (SELECT char_rank FROM MY_CHARACTER WHERE char_id=?);