[英]Mysql SELECT from 2 table
我似乎無法弄清楚如何制作 SELECT 聲明,將產品分組並在一種產品類型下顯示產品。
我有一張名為 floor 的表格,其中包含 15 種不同的地板產品,還有一張名為 floortypes 的表格,其中包含 8 種不同的產品類型 (ftid) 和一張產品圖片。 15 種產品中的每一種都有一個地板類型,用於定義它是哪種類型。 有些產品幾乎相同,但尺寸不同,但它給產品提供了不同的描述。
例子:
Product: Product 1 Product type: 1
Product: Product 2 Product type: 1
Product: Product 3 Product type: 2
Product: Product 4 Product type: 2
Product: Product 5 Product type: 3
Product: Product 6 Product type: 4
我想要的是要在具有 1 個產品圖像的產品組下顯示的產品
Producttype 1 image
Product 1 description
Product 2 description
Producttype 2 image
Product 3 description
Product 4 description
Producttype 3 image
Product 5 description
Producttype 4 image
Product 6 description
我希望有人能幫助我!
編輯
我使用了您的第一個示例,該示例完美無缺。 這是我的最終代碼:
$sql = SQLHandling::SQLquery("SELECT A.fid, A.floorname, A.desc_dk, A.floortype, B.prodimage, GROUP_CONCAT(A.desc_dk SEPARATOR '|') AS descr, GROUP_CONCAT(A.floorname SEPARATOR '|') AS fname FROM floors A JOIN floortypes B ON A.floortype = B.ftid GROUP BY A.floortype, B.prodimage");
然后是我的while循環:
$counter = 0;
while($row = mysql_fetch_array($sql)) {
$delimiter = "|";
$descr = explode($delimiter, $row["descr"]);
$fname = explode($delimiter, $row["fname"]);
$markers["###FLOOR###"] .= '<div style="float: left; width: 200px; height: 425px; margin: 0px 10px 0px 10px; vertical-align: text-top; text-align: left;">';
$markers["###FLOOR###"] .= '<p><a href="index.php?page=sfp&room='. $_GET["room"] .'&floor='. $row["floorname"] .'&wall='. $_GET["wall"] .'&envi='. $_GET["envi"] .'&fpanel='. $_GET["fpanel"] .'"><img src="images/floors/'. $row["prodimage"] .'.jpg" width="200" /></a></p>';
for ($i = 0; $i < count($descr); $i++) {
$markers["###FLOOR###"] .= '<p><a href="index.php?page=sfp&room='. $_GET["room"] .'&floor='. $fname[$i] .'&wall='. $_GET["wall"] .'&envi='. $_GET["envi"] .'&fpanel='. $_GET["fpanel"] .'">'. $descr[$i].'</a></p>';
}
$markers["###FLOOR###"] .= '</div>';
if (++$counter % 4 == 0) {
$markers["###FLOOR###"] .= '<div style="clear: both;"> </div>';
}
}
給了我我想要的東西!
SELECT A.producttype, B.image, Group_concat(<productid> order by <productid> SEPARATOR ',') Products
FROM PRODUCT A JOIN producttype B
ON A.producttype = B.producttype
GROUP BY A.Producttype, B.image
將“productid”替換為實際列,您的 output 將是
.... ETC
希望這可以幫助
也許你只是在尋找這個?
SELECT B.ftid, B.prodimage, A.fid, A.floorname, A.desc_dk
FROM floors A JOIN floortypes B
ON A.floortype = B.ftid
這將給出如下結果集,
producttype1, pt1image, product1 id, product1 name, product1 descriptin
producttype1, pt1image, product2 id, product2 name, product2 descriptin
producttype2, pt2image, product3 id, product3 name, product3 descriptin
producttype2, pt2image, product4 id, product4 name, product4 descriptin
producttype3, pt3image, product5 id, product5 name, product5 descriptin
producttype4, pt4image, product6 id, product6 name, product6 descriptin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.