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

标签 mysql sql

假设我们有 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/

相关文章:

mysql - Appfog mysql 隧道错误 - 加密在此事件机器上不可用

mysql - 这些选择查询之间的区别

python - 编程错误 1064

mysql - 插入时如何将一个数字连接到另一个数字

mysql - 计算表中的实例

mysql - Google Data Studio 和 AWS MySQL SSL 连接

mysql - 如何使用 OR 或 JOIN 合并消息?

SQL 查询根据同一表中的另一行检索一行

sql - Oracle SQL 列使用 UNION ALL 定义不明确

sql - sql中如何连接两个不相关的表