Mysql 连接两个单独的表

Mysql 连接两个单独的表,mysql,join,Mysql,Join,我如何将表1和表2连接在一起 表1: SELECT Roomid, Room, Latitude, Longitude, ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) AS D FROM Rooms AS t1 WHERE Latitude>(:minLat) AND Latit

我如何将表1和表2连接在一起

表1:

SELECT Roomid, Room, Latitude, Longitude,
                ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) AS D
FROM Rooms
AS t1
WHERE Latitude>(:minLat) AND Latitude<(:maxLat)
                AND Longitude>(:minLon) AND Longitude<(:maxLon)
                AND ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) < (:rad)
ORDER BY D
limit 6
每当我尝试在t1.Roomid=t2.Roomid上执行连接时,它都不起作用。

试试这个:

SELECT * FROM
(
SELECT Roomid, Room, Latitude, Longitude,
                ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) AS D
FROM Rooms
AS t1
WHERE Latitude>(:minLat) AND Latitude<(:maxLat)
                AND Longitude>(:minLon) AND Longitude<(:maxLon)
                AND ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) < (:rad)
ORDER BY D
limit 6
) A,
(
SELECT name, date, roomid, descr
FROM Events
AS t2   
WHERE date > NOW()
GROUP BY roomid
ORDER BY date
) B
WHERE A.Roomid = B.roomid;
SELECT *
FROM
    (
        SELECT  Roomid, 
                Room, 
                Latitude, 
                Longitude,
                ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) AS D
        FROM Rooms
        WHERE   Latitude>(:minLat) AND 
                Latitude<(:maxLat) AND 
                Longitude>(:minLon) AND 
                Longitude<(:maxLon) AND 
                ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) < (:rad)
    ) t1
    INNER JOIN 
    (
        SELECT `name`, `date`, roomid, `descr`
        FROM `Events`
        WHERE `date` > NOW()
        GROUP BY roomid
    ) t2
    ON t1.RoomID = t2.RoomID
ORDER BY t1.D, t2.`Date`

@Maknelly:为什么这个加入对您不起作用,首先给出您自己的代码,您正在尝试加入……然后我们可以进一步帮助您解决这个问题。

您所说的不起作用是什么意思?您能给出您试图执行连接的语法并指定什么不起作用吗?在这种情况下,你会得到一个错误,什么错误,或者它运行时没有错误,但没有给出你期望的结果,那么你必须给我们一个小例子,并解释你想要的输出以及当前输出错误的原因。
SELECT *
FROM
    (
        SELECT  Roomid, 
                Room, 
                Latitude, 
                Longitude,
                ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) AS D
        FROM Rooms
        WHERE   Latitude>(:minLat) AND 
                Latitude<(:maxLat) AND 
                Longitude>(:minLon) AND 
                Longitude<(:maxLon) AND 
                ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) < (:rad)
    ) t1
    INNER JOIN 
    (
        SELECT `name`, `date`, roomid, `descr`
        FROM `Events`
        WHERE `date` > NOW()
        GROUP BY roomid
    ) t2
    ON t1.RoomID = t2.RoomID
ORDER BY t1.D, t2.`Date`