1

I am trying to list all the courses for a person, where the course code doesn't start with a 'C'. The following code is still bring up 'C-...' codes. Any idea how to fix it?

SELECT u.idnumber, u.firstname, u.lastname, r.id, c.idnumber AS m_name, c.id AS c_id
FROM mdl_user u
  LEFT JOIN mdl_role_assignments r ON u.id = r.userid
  LEFT JOIN mdl_context c1 ON r.contextid = c1.id
  LEFT JOIN mdl_course c ON c1.instanceid = c.id
WHERE u.idnumber = 'a.smoth' AND NOT c.id LIKE 'C%'
pluke
  • 3,832
  • 5
  • 45
  • 68

4 Answers4

3

Just put the NOTjust before the LIKE:

... c.id NOT LIKE 'C%'
xlecoustillier
  • 16,183
  • 14
  • 60
  • 85
2

You not like syntax is not correct use it:

SELECT u.idnumber,u.firstname,u.lastname,r.id,c.idnumber AS m_name,c.id AS c_id
       FROM mdl_user u
            LEFT JOIN mdl_role_assignments r ON u.id = r.userid
            LEFT JOIN mdl_context c1 ON r.contextid = c1.id
            LEFT JOIN mdl_course c ON c1.instanceid = c.id
            WHERE u.idnumber = 'a.smoth' AND c.id NOT LIKE 'C%'
                                                  ^^^

This is NOT LIKE clause.

Code Lღver
  • 15,573
  • 16
  • 56
  • 75
0

Try this :



WHERE u.idnumber = 'a.smoth' AND c.id NOT LIKE 'C%'


Ahmed
  • 452
  • 3
  • 7
0
WHERE u.idnumber = 'a.smoth' AND c.id NOT LIKE 'C%'
Aboelseoud
  • 556
  • 1
  • 7
  • 22