简体   繁体   English

带JOIN的MySQL WHERE子句

[英]MySQL WHERE clause with JOIN

I've got a SQL query which joins columns from three different tables and works fine. 我有一个SQL查询,该查询连接了三个不同表中的列,并且工作正常。 I only want this query to run if Room_ID is in an array I've got. 我只希望如果Room_ID在我拥有的数组中运行此查询。 The two queries work fine separately but I can't get them working together. 这两个查询可以分别正常工作,但是我无法让它们一起工作。 This is what I'd like to run, if this condition is met: 如果满足此条件,这就是我要运行的内容:

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

And this is the condition: 这是条件:

WHERE message.Room_ID IN myArray

I've tried brackets and putting the WHERE clause in different places but to no avail. 我试过括号并将WHERE子句放在不同的位置,但无济于事。

You could try this: 您可以尝试以下方法:

Say, $array is your array. 假设$ 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;

Hope this helps. 希望这可以帮助。

Peace! 和平! xD xD

$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).")";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM