我有下表结构。
master table >
m_id, pk
m_name,
p_id, fk
s_id, fk
t_id, fk
x_id fk
p table >
p_id, pk
p_name
s table >
s_id, pk
s_name
t table >
t_id, pk
t_name
x table >
x_id, pk
x_name
我想获取给定m_id的m_id,m_name,p_name,s_name,t_name,x_name。
我在查询中应用内部联接
SELECT mt.m_id, mt.m_name, pt.p_name, st.s_name, tt.t_name, xt.x_name
FROM master mt
INNER JOIN p AS pt ON pt.p_id = mt.p_id
INNER JOIN s AS st ON st.s_id = mt.s_id
INNER JOIN t AS tt ON tt.t_id = mt.t_id
INNER JOIN x AS xt ON xt.x_id = mt.x_id
WHERE mt.m_id = 50;
问题:有没有其他有效方法可以实现这一点,或者我的查询还可以?
感谢。
答案 0 :(得分:0)
您的查询绝对没问题。如果您只想更改查询,可以使用下面的查询。我刚删除了别名
SELECT mt.m_id, mt.m_name, p.p_name, s.s_name, t.t_name, x.x_name
FROM master mt
INNER JOIN p ON p.p_id = mt.p_id
INNER JOIN s ON s.s_id = mt.s_id
INNER JOIN t ON t.t_id = mt.t_id
INNER JOIN x ON x.x_id = mt.x_id
WHERE mt.m_id = 50;