1

如果我有一个表 A,其中包含 4 个字段,即

productA, typeA, productB, typeB

“product*”包含产品名称,那么“type*”指的是表B的id,其中包含

id, type
1 , "fooType"
2 , "barType"

现在在我的表 A 中,我有类似的东西

productA, typeA, productB, typeB
"apple" , 1    , "banana", 2

现在,我想从表 B 中检索具有正确类型信息的上述行,SQL 应该如何?我未能使用“JOIN ... AND”,而“JOIN ... OR”将产生两个结果。

[编辑]

我试过的查询,

select * from a join b on a.typeA=b.id and a.typeB = b.id
select * from a join b on a.typeA=b.id or a.typeB = b.id
4

1 回答 1

2

那将是:

SELECT
  A.productA,
  B1.type AS typeA,
  A.productB,
  B2.type AS typeB
FROM
  A
    LEFT JOIN B AS B1 ON A.typeA=B1.id
    LEFT JOIN B AS B2 ON A.typeB=B2.id
于 2013-11-13T06:11:38.793 回答