我正在建立一个小的网上商店,在那里我有一个称为'产品'的父表和一个称为'图像'的子表。
我遵循了最佳实践,并在字段中设置了外键约束 product_id
在两个表之间建立链接。
产品
product_id (PK parent table)
product_title
product_category_id
product-price
product_quantity
product_description
long_description
product_image
图像
image_id (PK for child table)
product_id (foreign key)
product_image_two
注:每个产品将有2个图像,因此我想检索一个产品的基础上它的 product_id
并从每个表中获取相关的图像。
即:查询 product_image
从“产品”和 product_image_two
从“图像”
我在这附近的许多柱子上搜寻过 JOIN
并试图重构其他人的代码,但至今没有成功。
我现在的陈述
<?php
$query = query("SELECT p.* , i.* FROM products p,images i WHERE p.product_id=i.product_id");
confirm($query);
while ($row = fetch_array($query)):
?>
2条答案
按热度按时间qybjjes11#
尝试内部连接:根据你的解释,它应该工作
rsaldnfx2#
听起来你想要的是
LEFT JOIN
. 使用LEFT JOIN
,则可以选择产品表中的所有内容,但如果相应的键在产品表中,则只能选择图像表中的行。例如,您的查询可以如下所示:这将返回products表中的每一行,如果不存在第二个映像,那么images表中的每一列都将返回null值。下面是一个简化的演示:sqlfiddle