Как сделать оператор if else на SQL?

Привет, ребята, у меня есть проблема о том, как я мог бы сделать оператор if else на SQL,
Он отображает только стоимость аренды.rent_status = 1 по модальному, но если аренда.rent_status не имеет значения, модальный не будет отображаться, как я могу сделать его отображение?
Вот мой код для вашей ссылки;

        $sql = "SELECT * FROM stall 
        LEFT JOIN tenant ON tenant.stall_id = stall.stall_id 
        LEFT JOIN rent ON rent.tenant_id = tenant.tenant_id
        WHERE rent.rent_status = 1 AND stall.stall_id = 1";

3 ответа

  1. Вы используетеLEFT JOIN, а затем отменяете внешнее соединение в WHEREпредложении. Необходимо переместить условия в соответствующие ONпункты:

    SELECT *
    FROM stall s LEFT JOIN
         tenant t 
         ON t.stall_id = s.stall_id LEFT JOIN
         rent r
         ON r.tenant_id = t.tenant_id AND r.rent_status = 1
    WHERE s.stall_id = 1;
    

    A LEFT JOINсохраняет все строки в первой таблице вместе с соответствующими строками во второй таблице. Если нет совпадения, то значения NULLдля столбцов во второй таблице. Ваше WHEREусловие терпит неудачу на NULLусловиях.

  2. Возможно, попробуйте обернуть выходные данные кодом, похожим на этот

    while (mysqli_stmt_fetch($stmt)) {
        if(mysqli_stmt_num_rows($stmt) > 0){'output goes here'}
    }
    

    Я не уверен, как вы используете свой php, это просто, чтобы дать вам идею, чтобы расти дальше.

  3.     You don't need to use if..else just use or operator....   
    
    
    SELECT * FROM stall 
                    LEFT JOIN tenant ON tenant.stall_id = stall.stall_id 
                    LEFT JOIN rent ON rent.tenant_id = tenant.tenant_id
                    WHERE ((rent.rent_status = 1) OR (rent.rent_status IS NULL)) AND stall.stall_id = 1"