将三个表连接在一起以从每个表中获取三个值

时间:2013-02-16 17:02:28

标签: mysql sql

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

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   'INNER JOIN附近ts_building.id = ts_room.building_id INNER JOIN   第2行的ts_park.id = ts_build':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”

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

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

3 个答案:

答案 0 :(得分: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>
...

答案 1 :(得分: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

答案 2 :(得分:1)

您需要在FromINNER 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.parkts_park字段(与原始查询中一样),因此我选择了所有(*)