2016-03-20 26 views
0

3つのテーブルのカラムを結合して正常に動作するSQLクエリがあります。 Room_IDが配列内にある場合にのみ、このクエリを実行します。 2つのクエリは別々にうまく動作しますが、それらを連携させることはできません。JOINのMySQL WHERE句

SELECT message.Message, message.Period, message.Date, teacher.Firstname, teacher.Lastname, rooms.Room_ID, rooms.Description 
FROM message JOIN 
teacher 
ON teacher.Teacher_ID = message.Teacher_ID JOIN 
rooms 
ON message.Room_ID = rooms.Room_ID 

そして、これが条件です::この条件が満たされた場合、これは、私が実行したいものです

WHERE message.Room_ID IN myArray 

私は、ブラケットを試してみましたが、別の場所でWHERE句を入れてきましたが、無駄に。

答えて

0
$sql = " 
    SELECT message.Message, message.Period, message.Date, teacher.Firstname, teacher.Lastname, rooms.Room_ID, rooms.Description 
    FROM message 
    LEFT JOIN teacher ON teacher.Teacher_ID = message.Teacher_ID 
    LEFT JOIN rooms ON message.Room_ID = rooms.Room_ID 
    WHERE message.Room_ID IN (".implode(",", $myArray).")"; 
0

これを試すことができます。

と言って、$ arrayはあなたの配列です。

$sql = "SELECT message.Message, message.Period, message.Date, teacher.Firstname, teacher.Lastname, rooms.Room_ID, rooms.Description 
FROM message LEFT JOIN teacher ON teacher.Teacher_ID = message.Teacher_ID LEFT JOIN rooms ON message.Room_ID = rooms.Room_ID WHERE message.Room_ID IN ".$array; 

希望します。

平和! xD