日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php传输的多个id集中为一条记录,如何将多个ID应用于Mysql中的一条记录?

發布時間:2024/9/27 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php传输的多个id集中为一条记录,如何将多个ID应用于Mysql中的一条记录? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在實體關系語言中,這稱為多對多關系.一個產品可以有多個類別,一個類別可以有多個產品.

要在關系數據庫中執行此操作,您需要三個表.

product: product_id, name, description, etc

category: category_id, catname, catdescription, etc

然后用這個所謂的聯接表建立產品和類別之間的關系.

product_category: product_id, category_id

product_category的主鍵是兩列在一起-這是復合主鍵.

如果您有這些產品

1 chromebook

2 minitower

3 macbook

4 laptop

和這些類別

1 chromeos

2 portable

3 windows 7

4 macos

然后,您將在product_category表中具有這些條目

1 1 chromebook categories: ... chromeos

1 2 ... portable

2 3 minitower category ... windows 7

3 2 macbook categories ... portable

3 4 ... macos

4 2 laptop categories ... portable

4 3 ... windows 7

因此,如果您想查看每種產品的類別,則可以

SELECT name, description,

GROUP_CONCAT(catname) categories

FROM product

JOIN product_category USING (product_id)

JOIN category USING (category_id)

同樣,如果您想要所有筆記本電腦,則可以執行此操作.

SELECT name, description

FROM product

JOIN product_category USING (product_id)

JOIN category USING (category_id)

WHERE catname = 'laptop'

如果要使用所有的macos筆記本電腦設備,則要復雜一些.

SELECT name, description

FROM product p

JOIN product_category pca ON p.product_id = pca.product_id

JOIN category ca ON pca.product_id = ca.product_id

AND ca.catname = 'macos'

JOIN product_category pcb ON p.product_id = pcb.product_id

JOIN category ca ON pcb.product_id = cb.product_id

AND cb.catname = 'laptop'

請注意,組合主鍵可防止您多次將產品分配給類別,反之亦然.

專家提示:為清楚起見,在所有表中為連接的值使用相同的列名是一個好主意.例如,product_id同時顯示在product和product_category表中.

總結

以上是生活随笔為你收集整理的php传输的多个id集中为一条记录,如何将多个ID应用于Mysql中的一条记录?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。