将一个表连接到所有列,将第二个表连接到几列

时间:2017-06-13 08:35:42

标签: mysql sql database

我有两张表: - PERSONDATA。我想要做的是从PERSON表中获取所有详细信息,仅在DATA时从PERSON.personId = DATA.personId表中获取两列。

我正在使用此查询: -

SELECT *
FROM PERSON AND SELECT DATA.value, DATA.field
FROM DATA where PERSON.personId = DATA.personId; 

但我认为这是错误的语法。谁能告诉我它的正确语法是什么。

5 个答案:

答案 0 :(得分:1)

这样的事情:

  select
        P.*,
        D.value,
        D.field
    from Person P
    join Data D on P.PersonID = D.PersonID

将P. *更改为您需要的特定列,但P. *将从Person表中获取所有内容。

查看此帖LEFT JOIN vs. LEFT OUTER JOIN in SQL Server以了解JOINS,图表很好理解不同的内容

答案 1 :(得分:0)

SELECT PERSON.column1,PERSON.column2,PERSON.columnN,DATA.value 来自内部加入数据 ON PERSON.personId = DATA.personId

答案 2 :(得分:0)

非常简单,只需执行此查询:

SELECT 
    PERSON.*,
    DATA.value,
    DATA.field
FROM 
    PERSON INNER JOIN DATA USING (`personId`);

从DATA中选择PERSON + value和field的所有字段。 它还使用personId来连接两个表。

随时询问您是否需要更多信息。

答案 3 :(得分:0)

您可以使用join(LEFT JOIN)

SELECT * FROM PERSON LEFT JOIN DATA ON PERSON.personId = DATA.personId

希望它能帮到你

答案 4 :(得分:0)

SELECT p.*,d.column1,d.column2
  FROM Person p 
  JOIN Data d
       ON p.personId = d.personId
WHERE <Condition>

在此查询人员中,您可以通过此查询获取具有所需列的所有列和数据。