我正在尝试这个:
select
audit_log_entries.created_at,
audit_log_orig_term_types.name as originator,
audit_log_orig_term_types.name as terminator
from audit_log_entries
join audit_log_orig_term_types on audit_log_entries.originator_type_id = audit_log_orig_term_types.id
join audit_log_orig_term_types on audit_log_entries.terminator_type_id = audit_log_orig_term_types.id;
我认为意图很明确,我想要发起者和终结者的名字。我在第一个表中有他们的 ID,在另一个表中有他们的名字。
我收到一个错误:ERROR 1066 (42000): Not unique table/alias: 'audit_log_orig_term_types'
语法错误在哪里?
最佳答案
你可以这样:
select
audit_log_entries.created_at,
audit1.name as originator,
audit2.name as terminator
from audit_log_entries
join audit_log_orig_term_types audit1 on audit_log_entries.originator_type_id = audit1.id
join audit_log_orig_term_types audit2 on audit_log_entries.terminator_type_id = audit2.id;
关于mySQL两次连接同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464489/