【问题标题】:Joining tables in MySQL and requesting data from second table only在 MySQL 中加入表并仅从第二个表中请求数据
【发布时间】:2018-06-06 21:47:18
【问题描述】:

我正在尝试加入 2 个表,我只需要显示第二个表中的 3 列,其中另一列用作比较。

例如:

表一称为员工:它有一个名为 user_id 的列和一些其他列

表二称为人员:它有一个名为 user_id 的列,其中包括一些员工的 user_ids

我要选择的列都来自餐桌人! (名字、姓氏、电子邮件)

我尝试了以下方法,但出了点问题:

SELECT userid, firstname, lastname, email 
FROM people 
JOIN employee 
WHERE people.userid = employee.userid;

我不知道我做错了什么,你能帮我改正吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    你可以试试这个查询:

    SELECT 
         p.userid, 
         p.firstname, 
         p.lastname, 
         p.email 
    FROM 
         people as p, 
         employee as emp 
    WHERE 
         p.userid = emp.userid
    

    【讨论】:

    • 这感觉像是倒退了一步 :-(
    • 为什么你认为这是退步草莓?它似乎对我有用?
    • 我认为是因为它完全回到了旧的连接语法,而不是使用 JOIN ... ON ...
    【解决方案2】:

    我认为这个查询会解决你的问题

    insert into table1 (clmn_1,clmn_2,clmn_3) SELECT clmn_1,clmn_2,clmn_3 FROM table2 where id = value
    

    【讨论】:

      【解决方案3】:

      对于这个问题,你可以使用这个查询

      假设我有一个用户表,其中用户有零到一张个人资料图片

      对于没有头像的用户,我需要用户(姓名、姓氏、出生日期) 我可以使用这个查询

      select * 
      from user c
      where  NOT EXISTS (
          select 1 
          from photo p
          where p.id = c.photo_id
      )
      

      在这里你可以使用这两个表之间的任何字段

      删除不将导致拥有个人资料图片的用户

      希望对你有帮助

      您可以搜索SEMI JOINANTI JOIN了解更多信息

      【讨论】:

      • 在这种情况下,用户是您想要的表格,其中包含您需要显示的内容
      【解决方案4】:

      查看您的脚本,您似乎至少会在您的用户 ID 中遇到模棱两可的列。如果两个表之间存在共享相同名称的列,您希望在 WHERE 子句中明确告诉 SQL 列的来源。

      SELECT
        userid, -- AMBIGUOUS 
        firstname,
        lastname, 
        email 
        FROM people
          JOIN employee 
        WHERE people.userid = employee.userid;
      

      示例解决方案:

      SELECT
        people.userid,
        people.firstname,
        people.lastname,
        people.email
        FROM people
          JOIN employee 
        WHERE people.userid = employee.userid;
      

      【讨论】:

        猜你喜欢
        • 2015-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-26
        • 1970-01-01
        相关资源
        最近更新 更多