我有以下INSERT从SELECT处插入INSERT - 如果存在?
INSERT INTO `tbl_productcategorylink`
(`pcl_p_id`, `pcl_cat_id`, `pcl_orderby`)
SELECT
`p_id` AS pcl_p_id,
(SELECT `cat_id` FROM `tbl_categories` WHERE
CASE
WHEN `tbl_products`.`p_gender` = 'female' THEN
`cat_url_tag` = 'womens'
ELSE
`cat_url_tag` = 'mens'
END
LIMIT 1) AS pcl_cat_id,
1 AS pcl_orderby
FROM `tbl_products`
WHERE `tbl_products`.`p_gender` = 'female' OR `tbl_products`.`p_gender` = 'male';
这是添加链接类别和产品之间,p_gender
设定为“男性”任何产品都加入到“男子”类别,同样为“女'类。
如何才能做到这一点,但只有当某一行尚不存在给定的产品?
我基本上需要的东西添加到我的WHERE
条款,以确定是否已存在某行:
AND `exists` IS NULL
我试图创建查询的SELECT
部分原因exists
列,但是这会搞砸列数并使INSERT
失败。
对此有何建议?
谢谢。
非常漂亮托默勒格 - 感谢 – 2011-04-07 08:22:44
略有修改到'不EXISTS'是这样的'AND pcl_cat_id = C。作为产品的cat_id'可能已经在表tbl_productcategorylink中,但是在另一个类别中。再次感谢。 – 2011-04-07 10:11:43
@jakenoble:是的,我想添加类似的东西,但后来决定我无法确定这对你是对还是错。显然,你可以自己弄清楚。 :-)我的观点更多的是你可以加入表达式,这使得SQL语句比原来的语句简单和直接。 – Tomalak 2011-04-07 16:47:53