我如何从mysql和PHP的引用表中选择一个字段

时间:2018-09-29 22:26:30

标签: php mysql sql

我有两个mysql表“ category”和“ applications”,其中“ applications”表引用了“ category”。

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浏览器”应用程序,则不会被选中。

2 个答案:

答案 0 :(得分:1)

是的,关系数据库无法以这种方式工作。您需要所谓的多对多关系。

要实现此目的,您需要由此创建一个新表

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

在此表中,您将插入以下内容:

pip install django-heroku

这样,每个关系都有其自己的记录。您的查询将获取所有6类项目,如下所示:

tablename: 
    Applications_Have_Category
Fields:
    Applications_id
    Category_id

答案 1 :(得分:0)

我已经修复了代码,我用phpmyadmin搜索了表,直到找到返回结果的正确过滤器,结果我需要类似的东西

SELECT * FROM `softwares` WHERE `category` LIKE '%6%'

代替

"SELECT * from applictions Where category = '6';

谢谢。