我可以在(x,y,z)中使用select吗?

时间:2014-07-28 12:28:11

标签: mysql sql select where

这些天我是初学者,我很感谢你的建议。

我的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 

粗体文字部分是问题,我应该怎么修改它?

2 个答案:

答案 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)