Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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 多连接_Php_Mysql_Database_Web Applications - Fatal编程技术网

Php 多连接

Php 多连接,php,mysql,database,web-applications,Php,Mysql,Database,Web Applications,我有一张桌子(差不多) 这个模型工作正常,我构建了一个连接表的查询,这样我就可以请求获取所有产品组为14或类型为12的产品 现在我面临一个问题,我需要为产品添加更多类型 product: id, name, type, type_1, type_2, type_3 product_type: id, name, group_id product_group: id, name 在此之后,我编写了一个查询,可以检索type=12或type\u 1=12或type\u 2=12,但我不知道如何编写

我有一张桌子(差不多)

这个模型工作正常,我构建了一个连接表的查询,这样我就可以请求获取所有产品组为14或类型为12的产品

现在我面临一个问题,我需要为产品添加更多类型

product: id, name, type, type_1, type_2, type_3
product_type: id, name, group_id
product_group: id, name
在此之后,我编写了一个查询,可以检索
type=12或type\u 1=12或type\u 2=12
,但我不知道如何编写一个查询,在group=14或group\u 1=14时检索

我的问题是:

SELECT product.*,  
       product_group.group_name 
FROM product,
     product_group,
     product_type 
WHERE product.product_type = product_type.id 
  AND product_group.id = product_type.product_group 
  AND product_group=14
我如何补充:

(... or product_group_1=14 or product_group_2=14)
谢谢你的帮助,这里有一些例子

- product: id=2, name=cleaning kit, type=6 (photo accessorioes), type_1=9 (video accessorioes), type_2=33 (cleaning supply)
---------------------------------
- type: id=6, name=photo accessorioes, group=12 (photo equipment)
- type: id=9, name=video accessorioes, group=14 (video equipment)
- type: id=33, name=cleaning supply, group=31 (some group)
---------------------------------
- group: id=12, name=photo equipment
- group: id=14, name=video equipment
- group: id=31, name=some group

例如,现在我需要查找第14组中的所有产品。

您可能需要重新考虑您的模型。无论何时开始命名列_1、_2、_3等,通常都表明您的模式没有正常化。不同类型的产品有什么不同?能否介绍一个如下的联接表: 产品类型:产品id、类型id

编辑 听起来您有多对多关系(即,每个产品可以有多个组,每个组可以有多个产品)。要在关系数据库(如MySQL)中实现这一点,您需要一个表将您的产品连接到您的组,如下所示:

product_groups: product_id, group_id
然后,您可以使用相关的group\U id在该表上查询group by中的所有产品

编辑 根据您提供的示例数据,我将像这样重新构造您的模式

product: id=2, name=cleaning kit, 
---------------------------------
product_types: product_id=2, type_id=6 
product_types: product_id=2, type_id=9
product_types: product_id=2, type_id=33
---------------------------------
type: id=6, name=photo accessorioes, group=12 (photo equipment)
type: id=9, name=video accessorioes, group=14 (video equipment)
type: id=33, name=cleaning supply, group=31 (some group)
---------------------------------
group: id=12, name=photo equipment
group: id=14, name=video equipment
group: id=31, name=some group

product_types表将是一个联接表,product_id和type_id上有多列主键。这些列分别是与product.id和type.id相关的外键。

您可能需要重新考虑您的模型。无论何时开始命名列_1、_2、_3等,通常都表明您的模式没有正常化。不同类型的产品有什么不同?能否介绍一个如下的联接表: 产品类型:产品id、类型id

编辑 听起来您有多对多关系(即,每个产品可以有多个组,每个组可以有多个产品)。要在关系数据库(如MySQL)中实现这一点,您需要一个表将您的产品连接到您的组,如下所示:

product_groups: product_id, group_id
然后,您可以使用相关的group\U id在该表上查询group by中的所有产品

编辑 根据您提供的示例数据,我将像这样重新构造您的模式

product: id=2, name=cleaning kit, 
---------------------------------
product_types: product_id=2, type_id=6 
product_types: product_id=2, type_id=9
product_types: product_id=2, type_id=33
---------------------------------
type: id=6, name=photo accessorioes, group=12 (photo equipment)
type: id=9, name=video accessorioes, group=14 (video equipment)
type: id=33, name=cleaning supply, group=31 (some group)
---------------------------------
group: id=12, name=photo equipment
group: id=14, name=video equipment
group: id=31, name=some group

product_types表将是一个联接表,product_id和type_id上有多列主键。这些列分别是与product.id和type.id相关的外键。

我有一个包含产品的站点。像(佳能500d)这样的产品有其类型(数码单反)和组(摄影设备)我有3个基本页面:产品页面(适用于500d)、产品类型页面(适用于数码单反)和产品组页面(适用于多种类型的摄影设备)。添加产品类型1后,产品类型2。。。产品页面未更改,产品类型页面有新的查询,它显示了类型为_1的产品,但我不知道如何为产品组执行此操作,因为查询变得复杂,我无法理解如何为您的时间编写itty liquorvicar,我编辑了这篇主要的文章,希望它能对我有所帮助solution@day我还是觉得你不太明白。我使用了您提供的示例数据,试图让它更清晰。谢谢,Liqorvicar我现在明白了,这是一个很好的解决方案,如果不改变模型就无法实现,我将使用它。Atm解决方案将是一些新的查询,如果这是可能的,我有一个网站,有产品。像(佳能500d)这样的产品有其类型(数码单反)和组(摄影设备)我有3个基本页面:产品页面(适用于500d)、产品类型页面(适用于数码单反)和产品组页面(适用于多种类型的摄影设备)。添加产品类型1后,产品类型2。。。产品页面未更改,产品类型页面有新的查询,它显示了类型为_1的产品,但我不知道如何为产品组执行此操作,因为查询变得复杂,我无法理解如何为您的时间编写itty liquorvicar,我编辑了这篇主要的文章,希望它能对我有所帮助solution@day我还是觉得你不太明白。我使用了您提供的示例数据,试图让它更清晰。谢谢,Liqorvicar我现在明白了,这是一个很好的解决方案,如果不改变模型就无法实现,我将使用它。如果可能的话,Atm解决方案将是一些新的查询