我有一个连接两个表的语句。但是,我需要WHERE子句匹配第二个表中的两行。以下是两个表格:
b_iblock_element
ID | IBLOCK_ID | ACTIVE | ACTIVE_FROM | ACTIVE_TO
1 | 3 | Y | 15/09/2015 | 22/09/2015
2 | 3 | Y | 11/09/2015 | 20/09/2015
b_iblock_element_property
ID | IBLOCK_PROPERTY_ID | IBLOCK_ELEMENT_ID | VALUE
88 | 4 | 1 | 22
89 | 7 | 1 | 14
所以我需要从ID = IBLOCK_ELEMENT_ID
IBLOCK_PROPERTY_ID 4 = 22 AND IBLOCK_PROPERTY_ID 7 = 14
时的第一个表格中提取结果。我的问题是我不知道如何在where子句中包含第二个表中的两个行,因为我只能在一个子句中使用它。这是一个:
`SELECT a.ID, a.IBLOCK_ID, a.ACTIVE, a.ACTIVE_FROM, a.ACTIVE_TO, a.NAME,
b.ID, b.IBLOCK_PROPERTY_ID, b.IBLOCK_ELEMENT_ID, b.VALUE
FROM b_iblock_element a INNER JOIN b_iblock_element_property b
ON a.ID = b.IBLOCK_ELEMENT_ID WHERE a.IBLOCK_ID = '3' AND a.ACTIVE = 'Y'
AND b.IBLOCK_PROPERTY_ID = '4' AND b.VALUE ='22'`
现在我只需要合并:
AND b.IBLOCK_PROPERTY_ID =' 7' AND b.VALUE =' 14'
但显然不能把它放在另一排,而且它不起作用。
帮助将不胜感激。
答案 0 :(得分:0)
SELECT *
FROM b_iblock_element b1
JOIN b_iblock_element_property b2 ON b1.ID=b2.IBLOCK_ELEMENT_ID
WHERE (b2.IBLOCK_PROPERTY_ID=4 AND b2.value=22) OR (b2.IBLOCK_PROPERTY_ID=7 AND b2.value=14);