web-dev-qa-db-fra.com

écrire une jointure interne dans wpdb

J'ai un problème en écrivant la syntaxe SQL Inner Join dans wordpress, cette logique devrait fonctionner, j’ai essayé ceci dans phpmyadmin et cela fonctionne bien

SELECT booking_calendars.cal_name
FROM booking_calendars 
INNER JOIN booking_reservation 
ON booking_calendars.id = booking_reservations.calendar_id
WHERE status LIKE 'pending'

mais ce n'est pas dans wordpress

$pending_reservations = $wpdb->get_results(" 
    SELECT booking_calendars.cal_name
    FROM'.$wpdb->prefix.'booking_calendars AS booking_calendars
    INNER JOIN' . $wpdb->prefix.'booking_reservation AS booking_reservations
    ON booking_calendars.id =  booking_reservations.calendar_id
    WHERE status LIKE 'pending'");

et alors

echo "<h2>Pending Reservation: </h2><br>";
        var_dump( $pending_reservations);
        if($pending_reservations>0)
        {
        foreach ( $pending_reservations as $pending_reservation ) 
        {
            echo "<label>". $pending_reservation->cal_name."</label><br>";
        }
    }else{
        echo "<label>No Pending Reservation</label><br>";
    }

J'ai var_dumped $pending_reservations et il retourne array(0) { } dans wordpress

1
Mina Ragaie

merci pour votre temps et grâce à @czerspalace, j'ai lancé la requête avec une double citation, puis je l'ai séparée par une seule citation. Après avoir regardé le résultat de l'écho, j'ai constaté qu'il n'y avait pas d'espace entre From et table name.

c'est la bonne façon

$pending_reservations = $wpdb->get_results(' 
    SELECT booking_calendars.cal_name
    FROM '.$wpdb->prefix.'booking_calendars AS booking_calendars
    INNER JOIN '. $wpdb->prefix.'booking_reservation AS booking_reservations
    ON booking_calendars.id =  booking_reservations.calendar_id
    WHERE status LIKE "pending"');
2
Mina Ragaie