是否可以在SELECT * JOIN上排除对FK的选择?

时间:2019-01-16 17:44:20

标签: mysql sql

让我们说我们有2个表T1和T2,每个表有1个PK。 T2的PK实际上是一个FK,指出T1的PK就像这样;

T1: {PK1, Foo, Bar}

T2: {PK2, Baz} with foreign key {PK2 -> T1.PK1}

以下MySQL查询将从两个表中选择所有列;

SELECT * FROM T1 JOIN T2;
| PK1 | PK2 | Foo | Bar | Baz |
| ... | ... | ... | ... | ... |

但是,在我们的情况下,PK1和PK2包含具有不同名称的相同值。有没有一种方法可以更改我们的SQL以排除相同的FK列,而没有要求手动写入每个列名?

1 个答案:

答案 0 :(得分:0)

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

SELECT *
FROM T1 JOIN
     T2
     USING (t1_id);

除特别代码外,我不喜欢select *。但这很方便。