[英]How can I create this SQL query that has to join four tables to allow me extract the data I need?
我想要做的是一个PHP脚本,该脚本使用PHP和mySQL获取Joomla VirtueMart的所有产品。 但是我的问题与Joomla或PHP无关,但是我需要一个mySQL查询。
在下面,您可以找到保存我需要的数据的表和字段,
product_id,product_desc,product_full_image,product_name,product_price和category_name。
要获得PRODUCT_PRICE你需要从PRODUCT_ID jos_vm_product
并与PRODUCT_ID从匹配它jos_vm_product_price
得到PRODUCT_PRICE。
每个product_id在jos_vm_product_category_xref
都有一个category_id 。 因此,当找到category_id时,您将从jos_vm_category
获得category_name 。
这对我来说很困难,因为我对SQL查询不是很熟悉,并且在如何联接这些表方面需要您的帮助,因此它将使我能够回显所需的值。
谢谢。
jos_vm_poduct
product_id
product_desc
product_full_image
product_name
jos_vm_product_price
product_id
product_price
jos_vm_product_category_xref
product_id
category_id
jos_vm_category
category_id
categroy_name
当然,我们可以给您写一个答案,但是,为了最好地了解它,这是您想知道的事情
select <stuff> from <table1>
http://dev.mysql.com/doc/refman/5.0/en/join.html
然后,您将其与另一个表连接
所以,
select product_name, product_price from table1
left join table2 on table1.product_id=table2.product_id
链接表格后。
现在,去除您想要或不想要的位。 例如,如果您退出加入..您可能想要
where product_price>0
然后剥离或选择所需的钻头后,作业就完成了。
这样的事情应该起作用:
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
关于为什么有任何疑问,请问!
我假设您需要给定类别的所有产品。 如果不是,则很容易删除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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.