1

我试图列出一个人的所有课程,其中课程代码不以“C”开头。以下代码仍然是“C-...”代码。知道如何解决吗?

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%'
4

4 回答 4

3

只需将NOT之前的LIKE

... c.id NOT LIKE 'C%'
于 2013-06-26T08:43:06.780 回答
2

你不喜欢语法不正确使用它:

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%'
                                                  ^^^

不是 NOT LIKE子句。

于 2013-06-26T08:44:40.223 回答
0

试试这个 :


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


于 2013-06-26T08:50:01.087 回答
0
WHERE u.idnumber = 'a.smoth' AND c.id NOT LIKE 'C%'
于 2013-06-26T08:50:39.713 回答