【问题标题】:SQL query doesn't work as expectedSQL 查询未按预期工作
【发布时间】:2014-03-23 16:49:14
【问题描述】:

我有 3 张桌子:

菜单
m_id
m_name(菜单名称)
m_content(页面内容)
m_p_id(插件 ID)
m_s_id(状态 ID)

插件
p_id
p_name(插件名称,例如 Gallery)
p_file (gallery.php)

状态
s_id
s_name(主动或被动)

我想在 HTML 表格中看到这些:
m_id
m_name
m_content
p_name
s_name

这是我的查询:

SELECT m_id, m_name, m_content, s_name,p_name
        FROM menu, status, plugins
        WHERE m_s_id=s_id AND m_p_id=p_id

问题是,我看不到 m_p_id 为空的行(列中为 NULL)。

【问题讨论】:

  • 为什么您认为查询没有按预期工作?为什么它必须显示m_p_idnull 的行?
  • SQL 怎么说,我也想看那些行?
  • 如果您的 m_p_id 列为空,您将看不到您的数据。您需要进行 JOIN,因此 m_p_id 不应为 NULL。

标签: mysql sql


【解决方案1】:

试试看:

SELECT m_id, m_name, m_content, s_name, p_name
FROM menu
LEFT JOIN status ON m_s_id=s_id
LEFT JOIN  plugins ON m_p_id=p_id

【讨论】:

    【解决方案2】:

    你不能

    因为你需要JOIN那些表

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 2023-03-24
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多