更好的方法来选择第一个表中的所有列,并且只选择第二个表中的一列。

Posted

技术标签:

【中文标题】更好的方法来选择第一个表中的所有列,并且只选择第二个表中的一列。【英文标题】:Better way to select all columns from first table and only one column from second table on inner join 【发布时间】:2012-12-09 15:35:25 【问题描述】:

图解说明

表 1 的列:

|a|b|c|d|e|

表 2 的列:

|a|x|y|z|

我只想要 a、b、c、d、e、x。我只想要表 1 中的“a”列,而不是表 2 中的“a”列。

冗长的解释

我有两个表,其中一列共享一个通用名称。如果我使用 Select * 并使用内部联接,我会返回所有列,包括两个具有相同名称的列。

我想从第一个表中选择所有内容,从第二个表中只选择一列。现在我正在指定我需要的每一列,这是一个拖累。有没有更简单的方法可以从第一个表中获取所有内容,而只从第二个表中获取我想要的一列?

提前致谢。

【问题讨论】:

【参考方案1】:

你需要指定第二个表的列名,如果它与另一个表具有相同的columnName,你需要在它上面提供一个ALIAS

SELECT  tb1.*, tb2.x
FROM    tableA tb1
        INNER JOIN tableB tb2
            ON tb1.a = tb2.a

【讨论】:

以上是关于更好的方法来选择第一个表中的所有列,并且只选择第二个表中的一列。的主要内容,如果未能解决你的问题,请参考以下文章

如何只选择第二个表中的行?

添加列通过从sql Server中的另一个表中选择所有项目来选择表

使用第一个表的输出从第二个表中选择特定数据

Django Admin,我的表的所有内容都没有显示和内联问题

从第一个表中选择特定列,在 Laravel 中进行预加载

jQuery - 检查空输入有效,但只检查表中的第一行