在MySQL中,我可以从一个表中选择所有列,从一个表中选择一个列吗?

Nat*_*ong 1 mysql

在MySQL中,我有一个简单的"SELECT * FROM foo"查询.我想JOIN表'bar',但是:

  1. 我只想要一列 bar
  2. 我特别不想要idbar,因为它会与id列冲突foo

我知道我可以使用as语句来避免名称冲突,但我不想让事情复杂化.有没有办法编写此查询而不命名我想要的每一列foo

换句话说,我可以说'给我所有的列foo,只有这一列bar

更新:为什么这是不好的做法

人们指出,这"SELECT *"通常是不好的做法,因为:

  • 它返回不必要的数据.现在或将来,这可能包括一些大的内容,如BLOB数据列.
  • 如果数据库架构更改,则查询可能不会返回其中一个预期列.如果在查询中显式命名该列,则会出现错误; 如果没有,它可能会无声地失败(例如,插入标题应该去的空白).

Ale*_*vik 10

SELECT foo.*, bar.whatever FROM ...
Run Code Online (Sandbox Code Playgroud)

但请注意,这被认为是不好的做法.您应该始终按照预期的顺序命名所有列.