MySQL:左连接和列在不同的表中具有相同的名称?

use*_*856 6 mysql

SELECT * FROM `product` left join category on product.category_id = category.id
Run Code Online (Sandbox Code Playgroud)

此查询工作正常.但问题是,产品表和类别表都有名为"name"和"id"的字段.因此,当我获取此查询的结果时,它只给我一个名称和一个id,但我想要id和name.

如何在不重命名字段的情况下执行此操作?是否可以使用自定义名称(如product_name和category_name)返回?

Pas*_*nes 6

您可以在字段中添加别名:

SELECT
    a.id,
    a.name,
    a.category_id,
    b.id AS catId,
    b.name AS catName
FROM
    product AS a
LEFT JOIN
    category AS b ON a.category_id = b.category.id
Run Code Online (Sandbox Code Playgroud)


jim*_*pic 5

使用"AS"关键字之类的

SELECT product.id AS pid, category.id AS cid ... FROM `product` left join category on product.category_id = category.id
Run Code Online (Sandbox Code Playgroud)