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

标签 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;


问题:还有其他有效的方法可以实现此目的,或者我的查询还可以吗?

谢谢。

最佳答案

您的查询是完全可以的。如果您只想更改查询,则可以使用以下之一。我只是删除了别名

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;

关于mysql - sql查询以从5个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28209078/

相关文章:

php - 按连续小时获取sql

mysql - 通过和枢轴加入一个组

php - 无法加入 php/mysql 中的第三个表来获取用户名

java - Java与MYSQL服务器的连接

mysql - 是否可以在 SELECT 语句中计算日期范围?

php - 下拉选择搜索字段不起作用

mysql - 特别选择声明。根据主要 SKU 选择所有 SKU

php - Contenteditable/Jquery/Ajax/PHP/mysql - 无法从 URL 识别 $_GET 变量

html - 如何让一组开发人员访问同一个共享点站点并一起开发?

sql - 根据日期减值 SQL