-1

我有三个 sql 表 fname、lname 和 children:

fname(id INT, fname TEXT)

lname(id INT, lname TEXT, childid INT)

children( childid INT, Name)

我希望能够查询并查看如下输出:

John Doe Jane
John Doe Cynthia
May Jane Paul
Mary Jane Peter
Jimmy Smith Chris

根据 ID 字段,John 来自 fname,Doe 来自 lname。然后我希望他所有的孩子都基于 childid 领域。其他人也一样。

谢谢,

4

2 回答 2

1
SELECT fn.fname, ln.lname, c.Name
FROM fname fn
JOIN lname ln ON ln.id = fn.id
LEFT JOIN children c ON c.childid = ln.childid

但是,我认为您应该重新考虑您的设计。

我会考虑这样的事情:

Person (id INT, fname TEXT, lname TEXT, parentId INT NULL);

这样,您的查询应如下所示:

SELECT p.fname, p.lname, c.fname
FROM Person p
LEFT JOIN Person c ON c.parentId = p.Id
WHERE p.parentId = NULL
于 2013-08-10T18:04:53.480 回答
0
SELECT
    CONCAT(`fname`.`fname`, `lname`.`lname`, `children`.`name`)        
FROM `fname`
INNER JOIN `lname`
    ON `fname`.`id` = `lname`.`id`
INNER JOIN `children`
    ON `lname`.`childid` = `children`.`childid`
于 2013-08-10T18:10:38.993 回答