Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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 如何创建必须连接四个表才能提取所需数据的SQL查询?_Php_Mysql_Sql - Fatal编程技术网

Php 如何创建必须连接四个表才能提取所需数据的SQL查询?

Php 如何创建必须连接四个表才能提取所需数据的SQL查询?,php,mysql,sql,Php,Mysql,Sql,我想做的是一个PHP脚本,它使用PHP和mySQL获取Joomla VirtueMart的所有产品。然而,我的问题与Joomla或PHP无关,但我需要一个mySQL查询 下面您可以找到保存我需要的数据的表和字段,它们是 产品标识、产品描述、产品完整图像、产品名称、产品价格、类别名称 要获得产品价格,您将需要来自jos_vm_product的产品id,并将其与来自jos_vm_product_price的产品id匹配以获得产品价格 每个产品id在jos\u vm\u产品\u类别\u外部参照中都有一

我想做的是一个PHP脚本,它使用PHP和mySQL获取Joomla VirtueMart的所有产品。然而,我的问题与Joomla或PHP无关,但我需要一个mySQL查询

下面您可以找到保存我需要的数据的表和字段,它们是

产品标识、产品描述、产品完整图像、产品名称、产品价格、类别名称

要获得产品价格,您将需要来自jos_vm_product的产品id,并将其与来自jos_vm_product_price的产品id匹配以获得产品价格

每个产品id在jos\u vm\u产品\u类别\u外部参照中都有一个类别id。因此,当找到category_id时,您可以从jos_vm_category获得category_名称

这对我来说很困难,因为我不太熟悉SQL查询,我需要您帮助我如何连接这些表,因此它将允许我回显所需的值

多谢各位

何塞·沃姆·波杜克

jos_vm_产品_价格

jos\u虚拟机\u产品\u类别\u外部参照

jos_vm_类别


这样的事情应该行得通:

SELECT jvp.product_id, product_desc, product_full_image, product_name, product_price, category_name   
FROM jos_vm_product jvp  
JOIN jos_vm_product_price jvpp  
ON jvp.product_id = jvpp.product_id  
JOIN jos_vm_product_category_xref jvpcx  
ON jvpcx.product_id = jvp.product_id  
JOIN jos_vm_category jvc  
ON jvc.category_id = jvpcx.category_id  

任何关于原因的问题,请立即询问

当然我们可以给你写一个答案,但是,为了更好地理解它,以下是你想知道的事情

select <stuff> from <table1> 
链接完表后

现在去掉你想要或不想要的部分。例如,如果你离开了join。。你可能想要

where product_price>0

当您剥离或选择了所需的部分后,工作就完成了。

我假设您需要给定类别的所有产品。如果没有,很容易删除where子句来获取它们

我使用子查询获取给定类别的所有产品id,然后连接其他两个表

SELECT * FROM (SELECT p.product_id, c.category_name, FROM jos_vm_product_category_xref AS p LEFT JOIN jos_vm_category AS c ON p.category_id == c.category_id WHERE c.category_id = 4 ) as products LEFT JOIN jos_product ON jos_product.product_id=products.product_id LEFT JOIN jos_vm_product_price ON jos_vm_product_price=products.product_id
删除jos_vm_product_price和jos_vm_product_category_外部参照,将category_id和product_price字段放入jos_vm_product。结构必须保持原样。我的问题不是如何编辑数据库,而是如何利用它来获取一些数据。
SELECT jvp.product_id, product_desc, product_full_image, product_name, product_price, category_name   
FROM jos_vm_product jvp  
JOIN jos_vm_product_price jvpp  
ON jvp.product_id = jvpp.product_id  
JOIN jos_vm_product_category_xref jvpcx  
ON jvpcx.product_id = jvp.product_id  
JOIN jos_vm_category jvc  
ON jvc.category_id = jvpcx.category_id  
select <stuff> from <table1> 
select product_name, product_price from table1 
left join table2 on table1.product_id=table2.product_id
where product_price>0
SELECT * FROM (SELECT p.product_id, c.category_name, FROM jos_vm_product_category_xref AS p LEFT JOIN jos_vm_category AS c ON p.category_id == c.category_id WHERE c.category_id = 4 ) as products LEFT JOIN jos_product ON jos_product.product_id=products.product_id LEFT JOIN jos_vm_product_price ON jos_vm_product_price=products.product_id