如何使用MySQL关联表返回当前未分配给条目的类别
我有一个产品条目数据库。每个产品条目可以与多个类别关联。我已经创建了一个关联表来创建这些关联。我试图做的是创建一个MySQL查询,它将返回当前未分配给条目的所有类别 因此,如果一个条目是一个池表,并且它已经分配给游戏类别,我想创建一个查询,该查询将返回除游戏以外的所有类别 下面是我的数据库的表结构。任何帮助都将不胜感激 条目表:如何使用MySQL关联表返回当前未分配给条目的类别,mysql,Mysql,我有一个产品条目数据库。每个产品条目可以与多个类别关联。我已经创建了一个关联表来创建这些关联。我试图做的是创建一个MySQL查询,它将返回当前未分配给条目的所有类别 因此,如果一个条目是一个池表,并且它已经分配给游戏类别,我想创建一个查询,该查询将返回除游戏以外的所有类别 下面是我的数据库的表结构。任何帮助都将不胜感激 条目表: +--------------+------------------+ | Field | Type | +-----------
+--------------+------------------+
| Field | Type |
+--------------+------------------+
| eid | int(10) unsigned |
| entry_name | varchar(50) |
+--------------+------------------+
+----------------+------------------------+
| Field | Type |
+----------------+------------------------+
| cid | smallint(11) unsigned |
| cat_name | varchar(30) |
+----------------+------------------------+
+-------+-----------------------+
| Field | Type |
+-------+-----------------------+
| eid | int(10) unsigned |
| cid | smallint(11) unsigned |
+-------+-----------------------+
类别表:
+--------------+------------------+
| Field | Type |
+--------------+------------------+
| eid | int(10) unsigned |
| entry_name | varchar(50) |
+--------------+------------------+
+----------------+------------------------+
| Field | Type |
+----------------+------------------------+
| cid | smallint(11) unsigned |
| cat_name | varchar(30) |
+----------------+------------------------+
+-------+-----------------------+
| Field | Type |
+-------+-----------------------+
| eid | int(10) unsigned |
| cid | smallint(11) unsigned |
+-------+-----------------------+
关联表:
+--------------+------------------+
| Field | Type |
+--------------+------------------+
| eid | int(10) unsigned |
| entry_name | varchar(50) |
+--------------+------------------+
+----------------+------------------------+
| Field | Type |
+----------------+------------------------+
| cid | smallint(11) unsigned |
| cat_name | varchar(30) |
+----------------+------------------------+
+-------+-----------------------+
| Field | Type |
+-------+-----------------------+
| eid | int(10) unsigned |
| cid | smallint(11) unsigned |
+-------+-----------------------+
我从nick rulez那里得到了线索 此查询返回尚未分配给特定条目的类别。在此示例中,条目id为493:
select c.* from category c left join Association a on a.pid = c.pid and a.eid = '493' where a.eid is NULL
不确定这是否是最有效的方法,但它确实有效。看看left join和null;)谢谢我会做一些研究。还是一个MySQL初学者:)我只是不明白这个。还有谁能提供一些见解吗?谢谢Max。这不是我想要的。您的语句将返回尚未与任何内容关联的所有类别。我只想返回尚未分配给该特定条目的所有类别。