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

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

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'];?>
<?}?>
回答
編輯回答
夢若殤

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

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

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

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

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

這樣結果會有四列,c1、ca1ca2c3。

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

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