当前位置: 首页 > 面试题库 >

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

吕宣
2023-03-14
问题内容
SELECT * FROM `product` left join category on product.category_id = category.id

该查询工作正常。但是问题是,产品表和类别表都具有名为“ name”和“
id”的字段。因此,当我获取此查询的结果时,它只给我一个名称和一个ID,但同时又需要ID和名称。

我如何做到这一点而不必重命名字段?是否可以使用自定义名称(例如product_name和category_name)返回?


问题答案:

您可以将别名添加到字段:

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


 类似资料:
  • 我正在使用的数据库有许多具有相同列但(显然)具有不同表名的表(不是我设计的)。例如(这些是数据库表名): 有没有可能用JPA和Hibernate将这些映射到一个Java类实体?类的名称是,然后在使用它时传入例如,以便对象使用表? 还是只使用普通的、普通的Java对象来完成这样的任务更好? 谢谢你!

  • 问题内容: 我的MySQL数据库中有这些表: 通用表: Facebook表: 首席表: 基本上,常规表包含一些( 显然 )常规数据。基于generalTable.scenario,您可以在其他两个表中查找更多详细信息,这些表在某些熟悉的列中(例如,expiresAt),而在其他一些列中则不然。 我的问题是,如何仅通过一个查询就可以获取generalTable和正确的明细表的联接数据。 所以,我想这

  • 问题内容: 这个问题已经在这里有了答案 : SQL中左右联结与左右联结之间的区别[重复] (4个答案) 6年前关闭。 我看到过称为LEFT OUTER JOIN或RIGHT OUTER JOIN的联接。在某些地方,我见过LEFT JOIN或RIGHT JOIN。我对此感到困惑。 我两天前发布了一个问题,但我无法理解解决方案提供的链接。 这些连接类型是否相同,或者两者之间有区别? 问题答案: 两者之

  • 我正在运行以下JOOQ查询: table和joinTable都有id作为主键名称,但最终获取实体类包含joinTable的id和table的其余列。如果我重新排序表,结果相似,我有表的ID和joinTable的其余列。

  • 问题内容: 我有两个表,它们共享相似的列名。 查询是: 结果放入一个数组中: 一旦我添加了第二张表,我注意到该表正在使用tableb的数据。 问题 (S):如何存储两个列,所以不起作用。我的猜测可能是我需要对查询中的每个结果进行别名化。有什么建议? 我是否应该避免将来再提供列名 ? 问题答案: 你的猜测是对的。您需要为各列创建一个,以便可以唯一地获取它, 那你现在可以打电话

  • 问题内容: 我有两个要连接的表。 TABLE_A: TABLE_B: RESULT_TABLE: 我试图使用这样的东西: 但是,结果仅包括该列存在于TABLE_A中的行。 有没有办法连接TABLE_A和TABLE_B以产生RESULT_TABLE中显示的结果? 问题答案: 如果要获得所有结果,则需要一个 外部 联接,而不是一个 内部 联接。(内部仅返回匹配的行;外部返回所有行,其中匹配的行“缝合在