我有两张表: - PERSON
和DATA
。我想要做的是从PERSON
表中获取所有详细信息,仅在DATA
时从PERSON.personId = DATA.personId
表中获取两列。
我正在使用此查询: -
SELECT *
FROM PERSON AND SELECT DATA.value, DATA.field
FROM DATA where PERSON.personId = DATA.personId;
但我认为这是错误的语法。谁能告诉我它的正确语法是什么。
答案 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>
在此查询人员中,您可以通过此查询获取具有所需列的所有列和数据。