sql >> Database >  >> RDS >> Mysql

Voer 2 query's samen uit, maar voer ze afzonderlijk uit

Je moet de twee zoekopdrachten samenvoegen:

SELECT
    Rest_Details.Resturant_ID,
    Rest_Details.Resturant_name,
    Delivery_Pcode.Pcode,
    Opening_hrs.Open_time,
    Opening_hrs.Closing_time
FROM Rest_Details
JOIN Deliver_Pcode ON Delivery_Pcode.Restaurant_ID=Rest_Details.Restaurant_ID
LEFT JOIN Opening_hrs ON Opening_Hrs.Restaurant_ID=Rest_Details.Restaurang_ID
    AND Day_of_week = WEEKDAY(NOW()) AND CURTIME() BETWEEN Open_time AND Closing_time
WHERE Delivery_Pcode.Pcode LIKE '%$pcode%'

Omdat het een LEFT JOIN is , Open_time en Closing_time worden ingevuld als het restaurant open is, anders zijn ze NULL . Dus de PHP die de resultaten weergeeft, kan dit controleren:

while ($row_prods = mysqli_fetch_array($sql)) {
    $rest_id = $row_prods['Resturant_ID'];
    $rest_name = $row_prods['Resturant_name'];

    $output .= '<div id="products">' .
            ' <p id="rest_name">' . $rest_name . '</p>';
    if ($row_prods['Open_time']) {
        $output .= '<p> open ' . $row_prods['Open_time'] . ' close ' . $row_prods['Close_time'];
    }
    $output .= "</div>";
    $i++;
}


  1. PDOStatement::execute() retourneert true maar de gegevens worden niet bijgewerkt

  2. ActiveRecord where_in() met array

  3. Parameters gebruiken in een sql-instructie die date_format bevat

  4. NLS_LOWER() Functie in Oracle