连接MySQL中的表并仅从第二个表请求数据

时间:2017-12-25 21:00:43

标签: mysql

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

例如:

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

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

我想要选择的列全部来自桌面人物! (名字,姓氏,电子邮件)

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

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

我不确定我做错了什么,请你帮我纠正一下?

4 个答案:

答案 0 :(得分:5)

您可以尝试此查询:

{
  "query": {
    "nested": {
      "path": "products",
      "query": {
        "bool": {
          "must": [
            { "wildcard": { "products.product": "*car*" }},
            { "wildcard": { "products.number":  "*5*" }} 
          ]
        }
      }
    }
  }
}

答案 1 :(得分:2)

查看您的脚本,看起来您将至少在您的用户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;

答案 2 :(得分:2)

对于此问题,您可以使用此查询

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

对于没有个人资料图片的用户,我需要用户(姓名,姓氏,出生日期) 我可以使用此查询

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

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

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

希望这能帮到你

您可以搜索 SEMI JOIN ANTI JOIN 以获取更多信息

答案 3 :(得分:0)

我认为此查询可以解决您的问题

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>