sql联接如何联接多个表

用户名

我有3个表:药物顺序,订购目录和人

medicationOrder (
    startdate, 
    enddate,
    catalogId,
    orderId,
    personId)    

ordercatalog (
    catalogId, 
    drugId,
    IsGeneric,
    Brand)

Person (firsstname,
    lastname, 
    dob,
    personId)

我想检索姓氏为“ cat”的患者的所有药物订单...我尝试过此..您能告诉我我要去哪里了..谢谢..

select *
from ordercatalog as o, person as p, medicationorder as m

join ordercatalog on o.CatalogId= m.CatalogId, 

where (p.PersonId= m.PersonId and p.LastName= "Cat");
克伦普森

您已经结合了两种不同的SQL标准。

较旧的标准称为SQL89:

select 
  *
from 
  ordercatalog as o, 
  person as p,
  medicationorder as m
where
  o.CatalogId= m.CatalogId
  and p.PersonId= m.PersonId 
  and p.LastName= "Cat"

请注意,所有联接都在您的where子句中处理

相反,您可以根据将联接放在子句中SQL92标准进行操作from

select
    *
from
    ordercatalog o
    inner join medicationorder m on o.CatalogId = m.CatalogId
    inner join person p on m.PersonId = p.PersonId and p.LastName = "Cat"

您应该发现这些天的每个平台都支持SQL92标准。但是大多数都支持。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章