MySQL从一个表中选择,如果存在相同的值,则签入另一个表


MySQL select from a table and check in another table if the same value exists

好的,我正在创建一个数字商店。

这方面需要一些帮助。

首先,我的数据库看起来是这样的:

产品prod_id、prod_file_id、prod_status

文件file_id

所以我想做的是,在他们用paypal付款后(已经让ipn工作了),它应该加上"prod_file_id",然后检查"files"中是否存在"file_id"。如果没有,则应将"prod_status"设置为0。

我不知道该怎么做,因为我对编码还是个新手。希望你能帮我,谢谢。

尝试以下操作:

加上一个"prod_file_id":

update products 
set prod_file_id = prod_file_id + 1
where prod_id = 'the_prod_id_that_have_been_paid'

检查"files"中是否存在"file_id"。如果没有,则应将"prod_status"设置为0

update products set prod_status = 0
where prod_id = 'the_prod_id_that_have_been_paid' 
    and prod_file_id not in (select file_id from files)

注意:我假设prod_file_id是file_id的外键,所以products和files表有适当的关系。

更新:我更新了第二个sql命令。如果file_id不存在,它应该更新prod_status,所以我将其设为prod_file_id NOT in (select..

尝试在prod_file_id+1=file_id 上加入产品和文件