1

我正在尝试将三个表连接在一起,但不断收到以下错误消息:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“INNER JOIN ts_building.id=ts_room.building_id INNER JOIN ts_park.id=ts_build”附近使用正确的语法:SELECT ts_room.building_id,ts_building.park,ts_park INNER加入 ts_building.id=ts_room.building_id 内部加入 ts_park.id=ts_building.park_id WHERE ts_room.id="CC.0.21"

我做错了什么?到目前为止,这是我的代码:

SELECT ts_room.building_id,ts_building.park,ts_park
    INNER JOIN ts_building.id=ts_room.building_id
    INNER JOIN ts_park.id=ts_building.park_id
WHERE ts_room.id="CC.0.21"

我在这里上传了 SQL 小提琴:http ://sqlfiddle.com/#!2/ecaa6/2

4

3 回答 3

3

语法是

select ts_room.building_id,ts_park.park
from ts_room
inner join ts_building on ts_building.id=ts_room.building_id
inner join ts_park on ts_park.id=ts_building.park_id
where ts_room.id="CC.0.21"

您缺少 from 子句和要加入的表

一般语法或多或少:

Select <columns>
from <table1>
[inner|outer|left|right] join <table2> on <condition>
[inner|outer|left|right] join <table3> on <condition>
...
于 2013-02-16T17:05:30.067 回答
2

您缺少一个FROM子句,您INNER JOIN也需要指定ON,查询应如下所示:

SELECT ts_room.building_id,ts_building.park,ts_park
FROM ts_room
INNER JOIN ts_building ON ts_building.id = ts_room.building_id
INNER JOIN ts_park ON tsPpark.id = ts_building.park_id
WHERE ts_room.id="CC.0.21"

http://dev.mysql.com/doc/refman/5.0/en/join.html

于 2013-02-16T17:05:41.337 回答
1

您需要在FromandINNER JOIN子句之后指定表名

SELECT *
FROM ts_room
    INNER JOIN ts_building ON ts_building.id=ts_room.building_id
    INNER JOIN ts_park ON ts_park.id=ts_building.park_id
WHERE ts_room.id="CC.0.21"

注意:表中没有ts_building.park,ts_park字段(与您的原始查询一样),所以我选择了所有 (*)

于 2013-02-16T17:07:36.967 回答