【问题标题】:How to join two MSQL Tables如何连接两个 SQL 表
【发布时间】:2017-04-11 06:50:43
【问题描述】:

我有两个 MYSQL 表事件和用户。这是我的事件表:

标识 | 8

事件 |露营

这是我的用户表:

标识 | 1

事件 |露营,皮划艇

全名|约翰

如何将两个表连接在一起并打印出全名?

【问题讨论】:

  • 您能否编辑问题以更好地显示数据库结构?因为这不清楚
  • 但是您到底想打印什么?所有参加活动露营的人?或者所有在所有事件中都来自第一张桌子的人?
  • 我想这就是您需要看到的全部内容 - dev.mysql.com/doc/refman/5.7/en/left-join-optimization.html(可能正确加入,取决于您的选择要求)
  • 我想打印出参加活动露营@Whencesoever的人

标签: mysql


【解决方案1】:

例如,我有两个表 USERS 和 EVENTS。 我的 USERS 表是 (ID, USERNAME) 我的 EVENTS 表是 (ID,USERID, EVENT) 我想加入这两个表并在 PHP 中显示有关用户及其事件的完整信息。 我的代码可能是

PDO::ERRMODE_EXCEPTION]); $sql = "select us.*, ev.* from events ev left outer join users us on us.ID = ev.USERID"; $recordset = $dsn->query($query); foreach($recordset as $row) ///进入你的循环,在那里你获取所有必要的字段 } 捕获(PDOException $ex) { 回声 $ex->getMessage(); } 捕获(异常 $ex) { 回声 $ex->getMessage(); } ?>

`

【讨论】:

    【解决方案2】:

    我认为你想要做的正是这个:

    SELECT        dbo.events.event, dbo.users.id, dbo.users.FullName
    FROM            dbo.events INNER JOIN
                             dbo.users ON dbo.users.event LIKE '%' + dbo.events.event + '%'
    

    这将为您提供包含 ID 和 FUllName 的列表,其中包含在他们的事件列中有露营的表用户的所有人。

    【讨论】:

    • 只针对露营?皮划艇怎么样?我希望查询更灵活,而不是只关注一个事件,你能帮我吗?
    • 如果您有更多数据要显示或您想根据事件 ID 在何处显示,请自行尝试或询问,我可以帮助您; )。
    • 只针对露营?如果我想打印关于皮划艇的信息如何?我希望查询更灵活,而不是只关注一个事件,你能帮我吗?
    • 其实这就是我想要的,如果露营组织者想查看谁加入露营,它会列出谁加入露营,如果皮划艇组织者想查看谁加入皮划艇,它会列出谁加入皮划艇,你能帮帮我吗?
    • 我编辑了我的答案,所以你应该看到所有的记录。我不知道你是如何以及在哪里实现的。
    【解决方案3】:
    select us.*, ev.* from event ev left outer join users us on us.id (or else) = ev.id (or else)
    

    如果左表中的记录并不总是与右表中的记录匹配 否则:

    select us.*, ev.* from event ev inner join users us on us.id (or else) = ev.id (or else)
    

    如果您的表格,则按关键字段加入

    希望对你有帮助

    【讨论】:

    • 对不起,你能不能把它写成查询形式,因为我还是 php 和 mysql 的新手