[英]Join 2 Select Statements Together With Different Where Clause & Use in While Loop
我有2條select語句,但是我需要從一個查詢中檢索兩組日期,因此我可以進行while循環並在每行中返回兩個日期。
陳述一:
SELECT a.ID, a.CREATED_BY, a.IBLOCK_ID, a.NAME, 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 b.IBLOCK_PROPERTY_ID = '133'
然后第二個是相同的,但具有不同的where子句:
SELECT a.ID, a.CREATED_BY, a.IBLOCK_ID, a.NAME, 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 b.IBLOCK_PROPERTY_ID = '134'
b.VALUE字段在IBLOCK_PROPERTY_ID為133時返回開始日期,在其等於134時返回結束日期。
我讀過我可以使用CASE或UNION,但不確定如何使用。 我顯然會將用戶b.VALUE作為STARTDATE並將b.VALUE作為ENDDATE,但是不確定如何將它們結合在一起。
然后,我將使用PHP循環結果:
$result = mysqli_query($con,"QUERY");
while($row = mysqli_fetch_array($result))
{
}
好吧,您不需要CASE
或UNION
。 您需要的是另一個INNER JOIN
。 這是聯接查詢:
SELECT a.ID, a.CREATED_BY, a.IBLOCK_ID, a.NAME, b.VALUE as startDate, c.VALUE as endDate
FROM b_iblock_element a INNER JOIN b_iblock_element_property b
ON a.ID = b.IBLOCK_ELEMENT_ID AND b.IBLOCK_PROPERTY_ID = '133'
INNER JOIN b_iblock_element_property c
ON a.ID = c.IBLOCK_ELEMENT_ID AND c.IBLOCK_PROPERTY_ID = '134'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.