让我们说我们有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
列,而没有要求手动写入每个列名?
答案 0 :(得分:0)
仅在键具有相同名称的情况下才能执行此操作。在这种情况下,您可以使用USING
:
SELECT *
FROM T1 JOIN
T2
USING (t1_id);
除特别代码外,我不喜欢select *
。但这很方便。