-2

I get a syntax error between the INSERT part and SELECT part. I have no iddea why.

INSERT INTO SCHEDULE  ( '2018-08-13', MEMBER_PROFILE.MOW_ID, 0, MEMBER_PROFILE.FUNDING, NULL,NULL,NULL, 20, NULL)

SELECT MEMBER_PROFILE.MOW_ID 
FROM
MEMBER_PROFILE
WHERE MEMBER_PROFILE.FUNDING IN (6,7,8,10,18)
AND MEMBER_PROFILE.MOW_ID NOT IN (SELECT SCHEDULE.MOW_ID FROM SCHEDULE WHERE BKFST > 0 AND DATE ='2018-08-13');
Jens
  • 67,715
  • 15
  • 98
  • 113
FAYSS
  • 55
  • 1
  • 1
  • 4

2 Answers2

2

Your syntax is wrong. You need to merge the bracketed part of the INSERT with the result of the select:

INSERT INTO SCHEDULE
SELECT '2018-08-13', MEMBER_PROFILE.MOW_ID, 0, MEMBER_PROFILE.FUNDING, NULL,NULL,NULL, 20, NULL
FROM
MEMBER_PROFILE
WHERE MEMBER_PROFILE.FUNDING IN (6,7,8,10,18)
AND MEMBER_PROFILE.MOW_ID NOT IN (SELECT SCHEDULE.MOW_ID FROM SCHEDULE WHERE BKFST > 0 AND DATE ='2018-08-13');

See the documentation - https://dev.mysql.com/doc/refman/8.0/en/insert-select.html - for a reference for the correct syntax.

P.S. I would also advocate that you explicitly list the field names in the Schedule table so there's no problem with which field will get inserted into which column.

e.g.

INSERT INTO SCHEDULE
(Column1, Column2 ...etc
SELECT ...etc
ADyson
  • 57,178
  • 14
  • 51
  • 63
0

You must include a ; symbol after each query/sentence.

INSERT INTO TABLE ( ------ );
SELECT ..... FROM TABLE WHERE ...; 
Jens
  • 67,715
  • 15
  • 98
  • 113
Jesus Uzcanga
  • 276
  • 2
  • 6