如果我有一个表,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
答案 0 :(得分: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