簡體   English   中英

如何在 PHP/MySQL 中通過外鍵獲取所有值?

[英]How to fetch all values by foreign key in PHP/MySQL?

我正在從事電子商務項目。 我這里有 3 個表sizesproductsproduct_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM