有一張商品表:
+--------------+---------------+------+-----+---------+----------------+| 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 | |+--------------+---------------+------+-----+---------+----------------+
有一張商品的圖片表:
+----------+--------------+------+-----+---------+----------------+| 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 | |+----------+--------------+------+-----+---------+----------------+
商品表與商品圖片表是一對多的關係,現在要擷取商品的資訊及所有圖片,怎麼查會比較合適點?
回複內容:
有一張商品表:
+--------------+---------------+------+-----+---------+----------------+| 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 | |+--------------+---------------+------+-----+---------+----------------+
有一張商品的圖片表:
+----------+--------------+------+-----+---------+----------------+| 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 | |+----------+--------------+------+-----+---------+----------------+
商品表與商品圖片表是一對多的關係,現在要擷取商品的資訊及所有圖片,怎麼查會比較合適點?
如果商品表是 goods
,圖片表是 images
,需要擷取圖片的 id
為參數,則:
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';
注意,其中 ID_IMPUTED
為你要指定的商品 id
值。
建議取消圖片表
如果商品圖片的屬性(例如:建立時間)不重要的化建議取消圖片表.
如果圖片的資訊不需要檢索的話, 直接插入到exif中). 盡量減少資料冗餘.
建議將圖片id插入到商品表中的一列
建議將圖片id插入到商品表中的一列. 圖片id即檔案名稱, path根據使用者id等其他因素確定.