Mysql 是否可以在选择*连接时排除FK的选择?

Mysql 是否可以在选择*连接时排除FK的选择?,mysql,sql,Mysql,Sql,假设我们有两个表,T1和T2,每个表有1个PK。T2的PK实际上是一个FK,指出T1的PK,就像这样 T1:{PK1,Foo,Bar} T2:{PK2,Baz}带有外键{PK2->T1.PK1} 下面的MySQL查询将从两个表中选择所有列 从T1和T2中选择*; 但是,在我们的示例中,PK1和PK2包含具有不同名称的相同值。有没有一种方法可以改变SQL以排除相同的FK列,而不需要手动写入每个列名?只有当键具有相同的名称时,才能执行此操作。在这种情况下,您可以使用: 我不是select*的超级粉丝

假设我们有两个表,T1和T2,每个表有1个PK。T2的PK实际上是一个FK,指出T1的PK,就像这样

T1:{PK1,Foo,Bar}

T2:{PK2,Baz}带有外键{PK2->T1.PK1}

下面的MySQL查询将从两个表中选择所有列

从T1和T2中选择*;
但是,在我们的示例中,PK1和PK2包含具有不同名称的相同值。有没有一种方法可以改变SQL以排除相同的FK列,而不需要手动写入每个列名?

只有当键具有相同的名称时,才能执行此操作。在这种情况下,您可以使用:

我不是select*的超级粉丝,除了特别代码。但这可能很方便。

不;SELECT*在任何情况下都被认为是糟糕的做法,除了测试和即时编写的直接分析查询。如果它们是同一个名称,MySQL确实有一个替代调用使用的方法,它确实有这种影响。此外,如果孩子的PK只不过是父母的PK,那么就会产生一个问题:为什么表一开始是分开的。
| PK1 | PK2 | Foo | Bar | Baz |
| ... | ... | ... | ... | ... |
SELECT *
FROM T1 JOIN
     T2
     USING (t1_id);