我有两张 table 。一是元素。第二个是按类别分类的项目(catitems)。两个表都有一个用户字段。
我需要一个查询,该查询按用户在第一个表(items)中选择所有项目,但排除第二个表(catitem)中分配给给定类别的那些项目。换句话说,我从第一个表中获取了用户的项目列表,但如果第二个表中有一行包含项目、猫和用户,我会排除该项目。
从原理上讲,这类似于从 userid=1 的项目中选择项目,但排除 WHERE 项目(在第二个表中)(cat =“something”AND userid=1。)
我已尝试以下操作,但它并不排除表 2 中出现的项目。我做错了什么?
$sql = "SELECT i.*
FROM `items` i
LEFT JOIN `catitems` c
ON i.userid = c.userid
WHERE (c.userid = '$userid' && c.tcircle != '$cat')";
最佳答案
第一:
$sql = "SELECT i.*
FROM `items` i
LEFT JOIN `catitems` c
ON i.userid = c.userid
WHERE c.userid = '$userid'
AND c.tcircle != '$cat'";
第二个:sql-injection 。解决方案:pdo .
关于MYSQL 语法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10385220/