【问题标题】:Joining one table with 3 others与其他 3 人加入一张桌子
【发布时间】:2014-12-16 01:47:31
【问题描述】:

有人可以帮我把这些表连接在一起吗?

http://i.imgur.com/kbOEGnx.png?1

在我这样加入他们之后:

SELECT TableA.*, TableB.*, TableC.*, TableD.*
FROM TableA
    JOIN TableB
        ON TableB.aID = TableA.aID
    JOIN TableC
        ON TableC.cID = TableB.cID
    JOIN TableD
        ON TableD.dID = TableA.dID

它没有给我 issue-tickets 表中的所有行。我如何加入这些表以便能够从 issue_tickets 中获取所有信息,但是设备名称而不是设备 ID?我想对 issue_categories 和 issue_status 做同样的事情。

希望得到帮助! 谢谢!

【问题讨论】:

  • 您的查询中没有 issue-tickets 表。但是 ant 的 JOIN 基本指南会回答你的问题。
  • 请提供更多信息、一些示例数据、您得到的结果以及您希望收到的结果。
  • 问题票在哪里??
  • 当我尝试:“选择 issue_tickets.id、issue_tickets.date_created、issue_tickets.date_due、issue_tickets.summary、issue_tickets.description、issue_tickets.solution、device.name、issue_status.status、issue_categories.name。 ...并像我发布的那样加入”它只显示了 2 行,但是当我写: SELECT * from issue_tickets 它给了我 5 行(但最后三个 issue_tickets 元素的值是 tinyint、smallint 和 smallint)。我应该如何从 issue_tickets 中获取设备名称、issue_status 和 issue_categories 的所有元素?

标签: mysql sql select join left-join


【解决方案1】:

使用 LEFT JOIN 而不是 JOIN 它将从 LEFT 表中获取所有记录并从 RIGHT 表中获取匹配数据

试试这个:

SELECT t.id, t.date_created, t.date_due, t.summary, t.description, t.solution, 
       e.name, s.status, c.name
FROM issue_tickets t
LEFT JOIN equipment e on t.equipment_id = e.id
LEFT JOIN issue_status s on t.issue_status_id = s.id
LEFT JOIN issue_categories c on t.issue_categories_id = c.id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2011-05-01
    • 2017-02-07
    • 1970-01-01
    • 2014-07-13
    相关资源
    最近更新 更多