我有两个表患者和治疗类型。在过去的一个小时里,我一直在尝试查询每位患者的治疗类型名称,并将患者身份1分为一列,另一列为2,但不是他们的身份,而是他们的名字和姓氏。 / p>
我已经从excel中发布了一个图像模型,我希望查询在下面进行。
患者表的名称是患者,治疗表的名称是 treatment_type
idPatients PatientFName PatientLName PatientDOB PatientsCounty PatieritsCity PatientsOccupation Specalist_idSpecialist
1 Roger James 16/05/1992 Hampshire Portsmouth Student 2
2 James Murray 08/02/1960 Middlesex Harrow Business Owner 1
http://i.stack.imgur.com/MKKBd.png
我希望有人可以帮助我。
答案 0 :(得分:0)
我不认为你会得到你在这里想要的东西,你不能按照你想要的方式为每个病人创建新的专栏。
但是,您可以针对每位患者的每个条件获取一行,并在每行中包含他们的姓名和ID。然后使用您的prepossessing语言来检测ID何时相同,并以您要查找的格式列出该名称下的所有条件。为此,您需要LEFT JOIN
。这是一个很好的链接,可以看到这些可以为您做些什么:
http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/
根据您的意图,声明将如下所示:
SELECT p.ID
, CONCAT(p.FirstName, " ", p.LastName) AS PatientName
, t.TreatmentName
FROM patients p
LEFT JOIN treatment_type t ON p.ID = t.PatientID;
Here's an sqlfiddle to show that。这些表的名称与您的完全相同,因此您需要调整它们以适合您的数据库。如果您只是创建这个数据库,那么您应该考虑开发某种一致的命名约定,那么您的内容似乎有些分散。
编辑:根据carlosh12对OP的评论,您可以使用数据透视表来执行此类操作,但我不确定它是您的&#是什么? #39;需要这种情况。如此处详细说明,在SQL之外执行它会更快更容易。
编辑2 抱歉,忘记链接到我的SQLfiddle。它现在在那里。 Here is an edit我在其中包含了一个ORDER BY语句来回答你的评论。