Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用MySQL关联表返回当前未分配给条目的类别_Mysql - Fatal编程技术网

如何使用MySQL关联表返回当前未分配给条目的类别

如何使用MySQL关联表返回当前未分配给条目的类别,mysql,Mysql,我有一个产品条目数据库。每个产品条目可以与多个类别关联。我已经创建了一个关联表来创建这些关联。我试图做的是创建一个MySQL查询,它将返回当前未分配给条目的所有类别 因此,如果一个条目是一个池表,并且它已经分配给游戏类别,我想创建一个查询,该查询将返回除游戏以外的所有类别 下面是我的数据库的表结构。任何帮助都将不胜感激 条目表: +--------------+------------------+ | Field | Type | +-----------

我有一个产品条目数据库。每个产品条目可以与多个类别关联。我已经创建了一个关联表来创建这些关联。我试图做的是创建一个MySQL查询,它将返回当前未分配给条目的所有类别

因此,如果一个条目是一个池表,并且它已经分配给游戏类别,我想创建一个查询,该查询将返回除游戏以外的所有类别

下面是我的数据库的表结构。任何帮助都将不胜感激

条目表:

+--------------+------------------+
| 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。这不是我想要的。您的语句将返回尚未与任何内容关联的所有类别。我只想返回尚未分配给该特定条目的所有类别。