簡體   English   中英

將2個Select語句與不同的where子句結合在一起,並在While循環中使用

[英]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))
{

}

好吧,您不需要CASEUNION 您需要的是另一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM