大家好我有以下问题:
update tblAnimal as p
join tblGrouping as tfs on tfs.tblGroupingId = p.tblGroupingId
join tblShelter as ses on ses.tblShelterId = tfs.tblShelterId
join tblFind as tf on ses.tblFindId = tf.tblFindId
set findColor = 'y'
where p.animalData like (select searchName from tblSearchCriteria where animalId = p.tblanimalId)
or p.history like (select searchName from tblSearchCriteria where animalId = p.tblanimalId);
所以我想这个查询只返回子查询中的一列是可以的,但是一旦你从该返回查询开始获得多个值,我们就会开始遇到麻烦。
我的问题是,当期望从子查询返回多个列时,实现上述目标的最佳方法是什么。基本上我想要做的是处理搜索条件表中的多个searchNames,并将findcolor更新为' y'对于任何匹配任何返回的搜索名称的人。
我希望这是可以理解的。
答案 0 :(得分:0)
UPDATE
tblAnimal as p
JOIN tblSearchCriteria sc
ON p.tblanimalId = sc.animalId AND (p.animalData LIKE sc.searchName
OR p.history LIKE sc.searchName)
JOIN tblGrouping as tfs on tfs.tblGroupingId = p.tblGroupingId
JOIN tblShelter as ses on ses.tblShelterId = tfs.tblShelterId
JOIN tblFind as tf on ses.tblFindId = tf.tblFindId
SET
findColor = 'y'
否则你可以用IN替换LIKE。