sql查询从5个表中获取数据

时间:2015-01-29 07:23:50

标签: mysql sql select join

我有下表结构。

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;

问题:有没有其他有效方法可以实现这一点,或者我的查询还可以?

感谢。

1 个答案:

答案 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;