我的游戏脚本有2个表,一个是所有武器游戏的数据库(db_firearms
),另一个是商店中的武器列表(store_firearms
)。
(store
字段表示它是否会出现在商店中,0 =否,1 =是)
id name store
-----------------------
1 Pistol 1
2 Shotgun 1
3 Sniper 0
(weapon
字段与db_firearms中的武器的id相关)
id city weapon
-----------------------
1 Miami 1
2 Miami 2
3 New York 2
我想要做的是使用store_firearms
表中的每个MISSING武器填充db_firearms
表,其中store = 1(其中city = $ city)。
在mySQL中对此进行查询的最佳方法是什么?
答案 0 :(得分:0)
编辑使用NOT EXISTS
首次尝试完全拙劣。
INSERT INTO store_firearms (City, Weapon)
SELECT $city, F.Id
FROM db_firearms F
WHERE F.Store = 1 AND NOT EXISTS (
SELECT * FROM store_firearms WHERE City = $city AND Weapon = F.Id)
如果$ city是'New York',这会将'New York',1插入store_firearms
答案 1 :(得分:0)
试试这个:
SELECT ID, Name, Store
FROM db_firearms
WHERE STORE = 1 AND
ID NOT IN
(SELECT weapon
FROM store_firearms
WHERE city = $city)