我有两个 mysql 表“类别”和“应用程序”,其中“应用程序”表引用“类别”。
my "applications" table looks like
id apps category
1 adobe reader 1&4&6&10
2 photoshop cs3 4&6&7&6
my "category" table looks like
id category
1 utilities
2 windows
3 linux
4 mac
5 multimedia
And so on ..
显然,一个应用程序可以有多个类别,因此我的问题是尝试选择存在类别的应用程序。 我已经尝试过了
$query4 = "SELECT * from applictions Where category = '6';
但它只选择第一个类别为 6 的应用程序,例如 6&5&1,因此,如果我有一个包含“类别 5&3&6”的应用程序“chrome 浏览器”,则不会选择它。
最佳答案
是的,关系数据库不是这样工作的。您想要所谓的多对多关系。
要实现此目的,您需要创建一个新表
tablename:
Applications_Have_Category
Fields:
Applications_id
Category_id
在此表中,您将插入以下内容:
1,1
1,4
1,6
1,10
2,4
2,6
2,7
2,6
这样每个关系都有它自己的记录。您获取所有类别 6 项目的查询将如下所示:
SELECT * FROM `applictions` a JOIN `Applications_Have_Category` ahc ON a.id = ahc. Applications_id WHERE ahc.Category_id = 6;
关于php - 如何从 mysql 和 PHP 中引用的表中选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52573045/