ホームページ >バックエンド開発 >PHPチュートリアル >查询商品图片
有一张商品表:
<code>+--------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | cate_id | int(11) | NO | | NULL | | | name | varchar(100) | NO | | NULL | | | name_extend | varchar(200) | NO | | NULL | | | price | decimal(10,2) | NO | | NULL | | | origin_price | decimal(10,2) | NO | | NULL | | | stock | int(11) | NO | | NULL | | | desc | tinytext | NO | | NULL | | | detail | text | NO | | NULL | | | express | int(11) | NO | | NULL | | | status | tinyint(1) | NO | | NULL | | | slide | tinyint(1) | NO | | NULL | | | is_delete | tinyint(1) | NO | | NULL | | | add_time | int(11) | NO | | NULL | | +--------------+---------------+------+-----+---------+----------------+</code>
有一张商品的图片表:
<code>+----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | goods_id | int(11) | NO | | NULL | | | img_path | varchar(255) | NO | | NULL | | | is_main | tinyint(1) | NO | | NULL | | | add_time | int(11) | NO | | NULL | | +----------+--------------+------+-----+---------+----------------+</code>
商品表与商品图片表是一对多的关系,现在要获取商品的信息及所有图片,怎么查会比较合适点?
有一张商品表:
<code>+--------------+---------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+---------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | cate_id | int(11) | NO | | NULL | | | name | varchar(100) | NO | | NULL | | | name_extend | varchar(200) | NO | | NULL | | | price | decimal(10,2) | NO | | NULL | | | origin_price | decimal(10,2) | NO | | NULL | | | stock | int(11) | NO | | NULL | | | desc | tinytext | NO | | NULL | | | detail | text | NO | | NULL | | | express | int(11) | NO | | NULL | | | status | tinyint(1) | NO | | NULL | | | slide | tinyint(1) | NO | | NULL | | | is_delete | tinyint(1) | NO | | NULL | | | add_time | int(11) | NO | | NULL | | +--------------+---------------+------+-----+---------+----------------+</code>
有一张商品的图片表:
<code>+----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | goods_id | int(11) | NO | | NULL | | | img_path | varchar(255) | NO | | NULL | | | is_main | tinyint(1) | NO | | NULL | | | add_time | int(11) | NO | | NULL | | +----------+--------------+------+-----+---------+----------------+</code>
商品表与商品图片表是一对多的关系,现在要获取商品的信息及所有图片,怎么查会比较合适点?
如果商品表是 goods
,图片表是 images
,需要获取图片的 id
为参数,则:
<code class="sql">SELECT `goods`.`id`, `goods`.`name`, `goods`.`name_extend`, `images`.`img_path` FROM `goods`, `images` WHERE `goods`.`id` = `images`.`goods_id` AND `goods`.`id` = 'ID_IMPUTED';</code>
注意,其中 ID_IMPUTED
为你要指定的商品 id
值。
建议取消图片表
如果商品图片的属性(例如:创建时间)不重要的化建议取消图片表.
如果图片的信息不需要检索的话, 直接插入到exif中). 尽量减少数据冗余.
建议将图片id插入到商品表中的一列
建议将图片id插入到商品表中的一列. 图片id即文件名, path根据用户id等其他因素确定.