MySql加入不起作用

时间:2014-02-18 12:11:56

标签: mysql

我有三个名为locations,locations1,bus的表。我想在locations.id = bus.id上加入有总线的位置,我想在locations1.id = locations.id下面的位置加入locations1,这是正确的语法吗?

SELECT bus.id, bus.from_here, 
       bus.to_here, bus.ac, bus.fair,
       bus.dates, locations, locations1 
FROM bus 
INNER JOIN locations ON locations.id = bus.id 
INNER JOIN locations1 ON locations1.id = locations.id  
WHERE dates = '".$_SESSION['depart']."'

2 个答案:

答案 0 :(得分:1)

Select仅保留列名称,*表示全部。

locations, locations1 

这不应该起作用(如果你的意思是表格)。

您应该使用:

locations.*, location1.*

虽然我建议反对它,并在这些表格中使用特定的列名称。

例如:

locations.Field1, location.Field2, location1.OtherField1

答案 1 :(得分:0)

我认为您需要从表格位置和位置1中选择特定字段。

喜欢......只是一个例子......根据需要选择更多字段。或者,您可以使用*从表中选择所有字段。请记住,这比指定字段要慢,如下所示。

SELECT bus.id, bus.from_here, 
       bus.to_here, bus.ac, bus.fair,
       bus.dates, locations.id, locations1.id
FROM bus 
INNER JOIN locations ON locations.id = bus.id 
INNER JOIN locations1 ON locations1.id = locations.id  
WHERE bus.dates = '".$_SESSION['depart']."'

然后再次......只有1个表具有此字段名称时,字段dates才有效。为了安全起见......让它成为bus.dates。