【问题标题】:Selecting one record from two tables从两个表中选择一个记录
【发布时间】:2014-04-08 20:26:51
【问题描述】:

我被一个 SQL 查询困住了。我有两张桌子:

  1. 用户

    ________________________
    | id | company | worker|
    -------------------------
    | 1  | my comp | John  |
    
  2. 任务

    _________________________
    | id | name | company   |
    -------------------------
    | 1  | exm  | my comp   |
    

我的问题是我想显示这些公司的任务,哪个工人是约翰。我在这几个小时都遇到了麻烦,但我不知道该怎么做。是否有任何 SQL 查询可以做到这一点?

【问题讨论】:

  • 我看到你添加了加入标签,那么问题是什么?一点点努力就会有很长的路要走。
  • 查看JOIN上的MySql参考。
  • 您在 USERS 表中有公司和工人之间的关联,在 TASKS 表中有名称和公司之间的关联,但我看不到将任务与工人联系起来。您是否要查询属于拥有名为 John 的 Worker 的公司的所有任务?
  • 有没有人阅读手册(描述了所有内容)?使用搜索tizag.com/mysqlTutorial/mysqlleftjoin.php

标签: php mysql sql join


【解决方案1】:

您可以使用两个表中的公司列进行简单连接,并使用 where 子句过滤 John 的结果

SELECT t.*
FROM users u
JOIN tasks t USING(company)
WHERE u.worker ='John'

【讨论】:

    【解决方案2】:

    您想使用内部连接标签。只是为了更清楚而对提到的其他查询进行了修改。

    SELECT task.name,user.worker,user.company 
    FROM tasks as task INNER JOIN users as user 
     ON user.company=task.company 
     WHERE user.worker='John';
    

    【讨论】:

      【解决方案3】:

      您可以像...一样进行简单的连接

      $qry = "SELECT u.id,u.company,u.worker,t.id,t.name,t.company FROM users as u JOIN tasks as t ON u.company = t.company WHERE u.worker = 'John'";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 2023-03-11
        • 2017-08-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多