Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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
Php 关系表MYSQL_Php_Mysql_Datatables_Relational - Fatal编程技术网

Php 关系表MYSQL

Php 关系表MYSQL,php,mysql,datatables,relational,Php,Mysql,Datatables,Relational,我在一个数据库中有两个表。一个是提供者名称,另一个是提供者类型。提供程序可以是多种类型。因此,在我的提供者数据库中,您可以选择三种不同的类型 我无法确定如何访问提供程序类型名称。我想加入,但似乎无法通过 这就是我现在拥有的: 选择p.name、p.phone、p.provider_type1、p.provider_type2 从提供者处作为p p.provider\u type1上的内部联接提供程序\u type=provider\u type.id 其中installation\u id=$i

我在一个数据库中有两个表。一个是提供者名称,另一个是提供者类型。提供程序可以是多种类型。因此,在我的提供者数据库中,您可以选择三种不同的类型

我无法确定如何访问提供程序类型名称。我想加入,但似乎无法通过

这就是我现在拥有的:

选择p.name、p.phone、p.provider_type1、p.provider_type2 从提供者处作为p p.provider\u type1上的内部联接提供程序\u type=provider\u type.id 其中installation\u id=$installation\u id 我经常遇到的问题是,一个提供者有多种类型,它们可以在查询中出现两次,而我只想列出该提供者,然后在下面列出它们可以提供的服务类型

连接似乎不正确。我需要做的就是获取与providers.provider\u type1等具有相同id的provider\u type名称


我该怎么做呢。谢谢。

加入提供商两次,使用两个别名,每种提供商类型一个别名


但最好为行提供一个表,provider[provider\u id]具有类型名称[provider\u type],而不是provider\u typeX列。虽然这不是规范化,但只是好的设计。

您不应该有多个provider\u类型的列。通过为每个提供程序/类型组合创建一个具有单独行的表来规范数据。@Barmar谢谢,您能给我一个更具体的示例来说明您的意思吗?它会像添加一个具有provider\u id和provider\u type\u id的表一样简单吗?谢谢。是的,基本上就是这样。是的,一张三级桌。它允许您在数据之间建立多对多关系。