有没有办法在不写查询中所有字段名称的情况下选择第一个表?

Posted

技术标签:

【中文标题】有没有办法在不写查询中所有字段名称的情况下选择第一个表?【英文标题】:Is there some way to select the first table without writing all the fields names in the query? 【发布时间】:2012-01-15 08:44:31 【问题描述】:

问:如果我有两个表连接在一起,我想从第一个表中获取(*),我的意思是第一个表的所有字段。

我应该在查询中写下第一个表的所有字段名称吗?或者有什么方法可以从第一个表中选择 *。

【问题讨论】:

【参考方案1】:

您不应该列出所有字段,请参见示例:

SELECT DISTINCT t1.*
from T1
join t2 on condition

【讨论】:

考虑添加DISTINCT关键字。 @oneday 是的,谢谢。当然最好使用 EXISTS 而不是 JOIN【参考方案2】:

first_table.* 应该可以解决问题。

【讨论】:

【参考方案3】:

听起来更像是semi join。考虑重写例如

SELECT DISTINCT T1.*
  FROM T1 JOIN T2 ON T1.id = T2.id;

可以改写为

SELECT *
  FROM T1
 WHERE id IN (SELECT id FROM T2);

【讨论】:

以上是关于有没有办法在不写查询中所有字段名称的情况下选择第一个表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不编写长查询的情况下查询所有 GraphQL 类型字段?

如何在不暴露数据库中字段名称的情况下使用 OrderingFilter

有没有办法在不使用多个 SELECT 语句的情况下选择与选中项关联的元素?

如何在不使用字段名的情况下运行 django orm 查询?

SQL查询字段名

有没有办法在不进行查询的情况下读取指针