鍍金池/ 問(wèn)答/PHP  數(shù)據(jù)庫(kù)/ JOIN 後如果欄位重複,但是兩個(gè)都要顯示,要怎麼識(shí)別?

JOIN 後如果欄位重複,但是兩個(gè)都要顯示,要怎麼識(shí)別?

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

我 join 完發(fā)現(xiàn)我需要 store的 name, icon 以及 product 的name, icon
這該怎麼辦才好?

我是這樣顯示的:

<? while($row = mysqli_fetch_array($data)){?>
      <?=$row['icon'];?>
      <?=$row['name'];?>
<?}?>
回答
編輯回答
夢(mèng)若殤

實(shí)際上,結(jié)果中是有兩個(gè)同名列都有的,但這樣不好解析,可以用別名(alias)

SELECT 
    table1.column1 AS column_alias1,
    table2.column1 AS column_alias2
FROM
    table1, table2;

這樣結(jié)果中的兩列column_alias1column_alias2,分別就是table1column1table2column1了。

話說(shuō)你都知道用表的alias了,還不知道用列的alias,下面是混合使用別名。

SELECT
    a.c1,
    a.c2 AS ca1,
    b.c2 AS ca2,
    b.c3
FROM
    table1 AS a,
    table2 AS b;

這樣結(jié)果會(huì)有四列,c1ca1、ca2、c3。

你也可以混合用通配符*,但這樣會(huì)把原名和別名的列一起放到結(jié)果中,不過(guò)并不影響解析,你知道你要的是啥就行了。

2017年1月12日 13:24
編輯回答
詆毀你
SELECT
    p. NAME AS productName,
    p.icon AS productIcon,
    s. NAME AS storeName,
    s.icon AS storeIcon
FROM
    `product` AS p
JOIN `store` AS s ON p.prod_id = s.prod_id
2018年3月19日 17:39