iT邦幫忙

0

JOIN 後如果欄位重複,但是兩個都要顯示,要怎麼識別?

SELECT * FROM `product` AS p
      JOIN
        `store` AS s ON p.prod_id = s.prod_id

我 join 完發現我需要 store的 name, icon 以及 product 的name, icon
這該怎麼辦才好?

我是這樣顯示的:


<? while($row = mysqli_fetch_array($data)){?>
      <?=$row['icon'];?>
      <?=$row['name'];?>
<?}?>

2 個回答

0
allenlwh
iT邦研究生 5 級 ‧ 2018-07-04 17:13:14
最佳解答

這樣可以嗎?

SELECT p.prod_id as prod_prod_id, p.icon as prod_icon,
    s.prod_id as store_prod_id, s.icon as store_icon
FROM product AS p
      JOIN
        store AS s ON p.prod_id = s.prod_id
看更多先前的回應...收起先前的回應...
asys0512 iT邦研究生 5 級 ‧ 2018-07-04 17:19:34 檢舉

但是這樣我 $row 顯示那邊要怎麼表達才對?

asys0512 iT邦研究生 5 級 ‧ 2018-07-04 17:22:16 檢舉

因為這樣我等於是要顯示四個值

asys0512 iT邦研究生 5 級 ‧ 2018-07-04 17:22:28 檢舉

我實在是想破頭

allenlwh iT邦研究生 5 級 ‧ 2018-07-04 17:31:44 檢舉

你不是所有的值都要顯示?那當然是要顯示四個值

<?=$row['prod_prod_id'];?>
<?=$row['prod_icon'];?>
<?=$row['store_prod_id'];?>
<?=$row['store_icon'];?>
Luke iT邦新手 4 級 ‧ 2018-07-04 17:35:12 檢舉
SELECT p.name as prod_name, p.icon as prod_icon,
    s.name as store_name, s.icon as store_icon
FROM product AS p
      JOIN
        store AS s ON p.prod_id = s.prod_id
<? while($row = mysqli_fetch_array($data)){?>
      <?=$row['prod_icon'];?>
      <?=$row['prod_name'];?>
      <?=$row['store_icon'];?>
      <?=$row['store_name'];?>
<?}?>

有什麼好想?
/images/emoticon/emoticon67.gif

0
fuzzylee1688
iT邦新手 4 級 ‧ 2018-07-05 09:21:53

也許你要的是這個

SELECT coalesce(p.name, s.name) as NAME
      ,coalesce(p.icon, s.icon) as ICON
  FROM PRODUCT AS P
  JOIN STORE AS S 
    ON P.PROD_ID = S.PROD_ID

我要發表回答

立即登入回答