在连接表中选择语句

时间:2011-04-14 19:38:48

标签: mysql select composite

有三个表格如下:

PersonTable
Person.ID
Person.Name

PersonTypeCompositeTable
Person.ID
PersonType.ID

PersonTypeTable
PersonType.ID
PersonType.Category

对于此示例,请说PersonTypeCompositeTable的值为:

1,A
2,A
3,B

如何编写一个SELECT语句,它将返回PersonType为“A”的所有人?


更新:(已发布的答案的工作版本)

SELECT p.*
FROM PersonTable p
  INNER JOIN PersonTypeCompositeTable ptc
    ON p.ID = ptc.ID
  INNER JOIN PersonTypeTable pt
    ON ptc.ID = pt.ID
WHERE pt.Category = 'A'

1 个答案:

答案 0 :(得分:3)

您在三个表之间使用joins

SELECT p.*
FROM PersonTable p
  INNER JOIN PersonTypeCompositeTable ptc
    ON p.Person.ID = ptc.Person.ID
  INNER JOIN PersonTypeTable pt
    ON ptc.PersonType.ID = pt.PersonType.ID
WHERE pt.PersonType.Category = 'A'