我有三个名为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']."'
答案 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。