我有三个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
John来自fname,而Doe来自lname,基于ID字段。然后我希望他所有的孩子都基于childid字段。其他人也一样。
谢谢,
答案 0 :(得分: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
答案 1 :(得分: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`