从连接表中选择所有内容

时间:2016-02-05 10:30:00

标签: mysql sql select

我有两个联合表:

SELECT table1.*, table2.* FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.t1_id

问题:在查询结果中,id将始终从SELECT语句中定义的辅助表中获取?

例如:

如果我使用select t1.*, t2.* - 结果ID将为t2.id

如果我使用select t2.*, t1.* - id将是t1.id。

使用'合并'结果是好的做法,还是应该避免歧义,并且始终严格定义列?

2 个答案:

答案 0 :(得分:1)

不,除非您使用自然连接(table1 inner join table2 using(column)),否则sql查询将返回所有表中具有相同名称的所有列,而不仅仅是最后一个列。

如果使用某种将结果存储在关联数组中的组件,那么这些组件通常只使用字段名作为键,因此它们仅返回具有相同名称的那些值的最后一列值

但是,如果要在数据库中返回多个具有相同名称的列,则使用别名是一个不错的选择。

答案 1 :(得分:0)

我的建议是使用带有别名的tablename并像这样使用。最好的做法是运行query.Mention你的列名,即使它有很多列。您可以订购显示器。

 SELECT t1.columnName1, t2.columnName2 FROM tablename1 t1 INNER JOIN tablename2 t2 ON t1.id = t2.id