[英]How to fetch all values by foreign key in PHP/MySQL?
我正在從事電子商務項目。 我這里有 3 個表sizes
, products
和product_sizes
。
sizes
表如下:
uid | size
----------
1 | S
2 | M
3 | L
product_sizes
表如下:
product_uid | size_uid
----------------------
1 | 2
1 | 3
2 | 1
2 | 2
我想要做的是,通過products
表中的外鍵product_uid
檢索所有尺寸,這是我正在使用的代碼,
$get_sizes = "SELECT * FROM product_sizes WHERE product_uid IN($pro_id)";
$run_sizes = mysqli_query($conn, $get_sizes);
while($row_sizes = mysqli_fetch_assoc($run_sizes)){
$sizes[] = $row_sizes['size_uid'];
$sizesAll = implode(", ", $sizes);
}
對於第一個產品,我得到了正確的值,但對於第二個產品,它結合了數據。
例如,如果產品 1 的尺寸為1,3
,而產品 2 的尺寸為2,3
,則產品 2 將顯示1,3,2,3
。
任何幫助將不勝感激,謝謝!
我會在這里使用GROUP_CONCAT
:
SELECT
ps.product_uid,
GROUP_CONCAT(s.size ORDER BY s.uid) sizes
FROM product_sizes ps
LEFT JOIN sizes s
ON s.uid = ps.size_uid
GROUP BY
ps.product_uid;
請注意,我沒有添加任何 PHP 代碼,您的主要問題似乎圍繞 SQL 本身解決,而不是如何使用 PHP 中的 SQL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.