背景
在 QA/QC 过程中,我正在编写大量具有多个连接的查询。我正在使用 MySQL。
我想知道如何(如果)我可以简化连接语句,例如通过设置要连接的默认字段。
我的表以它们包含的对象的复数形式命名:
names
types
actions
surnames
names_surnames
names_surnames
多对多查找表在哪里
主键总是id
,外键总是,例如
names.type_id
names.action_id
names_surnames.name_id
names_surnames.surname_id
我的加入会是这样的
select names.col1
from names join types on names.type_id = type.id
join actions on names.action_id = actions.id;
问题
有没有办法让 MySQL 始终假定表将与 连接on thistables.thattable_id = thattable.id
?
如果列在“两个”表中的名称相同,我认为您可以使用
NATURAL JOIN
. 虽然这对您不起作用,但命名的一致性应该仍然允许您使用脚本语言生成查询——或者至少是连接子句。如何为重复使用的连接创建视图?
例如:
如果 JOIN 中涉及的表共享同名字段,
则可以使用 JOIN 语法的 USING 子句。
例如
如果操作表将 action_id 作为主键而不是 id
,并且类型表将 type_id 作为主键而不是 id
那么查询可以重写为
试试看 !!!