MySQL从表中选择并检查另一个表是否存在相同的值

时间:2013-12-14 10:38:56

标签: php mysql sql

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

在这方面需要一些帮助。

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

产品 prod_id,prod_file_id,prod_status

文件 的file_id

所以我想要做的是用paypal付款后(已经有ipn工作),它应该加上“prod_file_id”一个,然后检查“file_id”是否存在于“files”中。如果没有,它应该把“prod_status”= 0。

无法弄清楚如何做到这一点,因为我仍然是编码的新手。 希望你能帮助我,谢谢你。

2 个答案:

答案 0 :(得分:1)

尝试以下方法:

加上“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的外键,因此产品和文件表具有正确的关系。

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

答案 1 :(得分:0)

尝试在prod_file_id + 1 = file_id

上加入产品和文件