假设我们有 2 张 table ,T1 和 T2,每张 table 有 1 个 PK
。 T2 的 PK
实际上是一个 FK
,指出 T1 的 PK
,如下所示;
T1:{PK1,Foo,Bar}
T2:{PK2,Baz},带外键 {PK2 -> T1.PK1}
以下 MySQL 查询将从两个表中选择所有列;
SELECT * FROM T1 JOIN T2;
| PK1 | PK2 | Foo | Bar | Baz |
| ... | ... | ... | ... | ... |
但是在我们的例子中 PK1 和 PK2 包含具有不同名称的相同值。有没有办法改变我们的 SQL 以排除相同的 FK
列而不需要手动写入每个列名称?
最佳答案
仅当键具有相同名称时才能执行此操作。在这种情况下,您可以使用USING
:
SELECT *
FROM T1 JOIN
T2
USING (t1_id);
除了临时代码之外,我不太喜欢 select *
。但这很方便。
关于mysql - 是否可以在 SELECT * JOIN 上排除 FK 的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54222596/