我需要一些关于执行多个连接的帮助,我不太擅长这件事,需要一种方法来让它工作。
有5个表有数据,需要从每个表中获取数据输出。有一个人、访问、中心、日期和已见表。访问表具有用于从其他表获取数据的 ID。我想使用此表来获取此人的状态,查看他们访问的日期、在哪个中心、他们的姓名以及谁见过他们。 (我希望这是有道理的)。
输出应该如下所示:
> Person FirstName
> Person LastName
> Seen By
> Date
> Center
> Status
编辑//这是我想看到的模型
我已经阅读了数据透视表,但不想使用它。我在这里创建了一个 SQL fiddle : http://www.sqlfiddle.com/#!2/d19d2c
编辑// 我已经成功编写了一半的查询,但我怀疑它是否有效,但我想它是一个起点。
SELECT d.date
, p.Firstname
, p.Lastname
, c.centername
, v.status
, s.FirstName
, s.LastName
FROM visit v
LEFT
JOIN date d
ON v.dateID = d.id
LEFT
JOIN centerName c
ON c.centerID = c.id
谢谢!
最佳答案
从您的表结构来看,您似乎想要这样的查询:
SELECT
d.date,
CONCAT_WS(' ', p.Firstname ,p.Lastname) AS "Person",
v.status,
CONCAT_WS(' ', s.FirstName, s.LastName) AS "Seenby",
c.centername
FROM visit v
JOIN person p ON v.PersonID = p.ID
JOIN seenby s ON v.seenbyID = s.ID
LEFT JOIN date d ON v.dateID = d.id
LEFT JOIN center c ON v.centerID = c.id
最后两个连接可能应该是普通的内连接而不是左连接,请酌情调整。
CONCAT_WS()
函数使用第一个参数的值作为分隔符(本例中为空格)将其参数连接成一个字符串。
关于mysql - 在 mysql 查询中使用来自 5 个不同表的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342550/