这些天我是初学者,我很感谢你的建议。
我的sql查询出了问题
INSERT IGNORE INTO TB_AUTO_BAN(MEMO, REG_DATE, USER_ID, NAME, PHONE_NUM) ( SELECT 'test' AS MEMO, NOW() AS REG_DATE, a.USER_ID, a.NAME, a.CONTACT_NUM FROM TB_CONTACT AS a,TB_CONTACT_GROUP AS b WHERE b.USER_ID = 'spark@naver.com' AND b.GROUP_CONTACT_SEQ = IN(12800,12801) AND a.GROUP_CONTACT_SEQ = b.GROUP_CONTACT_SEQ
粗体文字部分是问题,我应该怎么修改它?
答案 0 :(得分:2)
您的查询看起来没问题,= in
除外。只需要in
。
我会将查询写成:
INSERT IGNORE INTO TB_AUTO_BAN(MEMO, REG_DATE, USER_ID, NAME, PHONE_NUM)
SELECT 'test' AS MEMO, NOW() AS REG_DATE, c.USER_ID, c.NAME, c.CONTACT_NUM
FROM TB_CONTACT AS c JOIN
TB_CONTACT_GROUP AS cg
ON c.GROUP_CONTACT_SEQ = cg.GROUP_CONTACT_SEQ
WHERE cg.USER_ID= 'spark@naver.com' AND
cg.GROUP_CONTACT_SEQ IN (12800, 12801) ;
除了修复条件外,还会将表别名更改为缩写而不是任意字母。它还使用标准join
语法而不是隐含在where
子句中的条件的隐式连接。
答案 1 :(得分:0)
等号" ="是多余的。删除它,然后离开:b.GROUP_CONTACT_SEQ IN(12800,12801)