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.2k
2 个回答
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

实际上,结果中是有两个同名列都有的,但这样不好解析,可以用别名(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;

这样结果会有四列,c1ca1ca2c3

你也可以混合用通配符*,但这样会把原名和别名的列一起放到结果中,不过并不影响解析,你知道你要的是啥就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题