从两个以上的表中获取数据时,我应该一直使用LEFT JOIN吗?

时间:2013-07-11 06:41:34

标签: php mysql join

下面是MySQL的例子

SELECT A.hospital_id, A.name, A.distance, B.name, A.near_gate 
FROM hospital A, station B 
WHERE A.campus='".$campus."' 
      AND A.category='".$category."' 
      AND A.station = B.id

这个例子确实运行良好,但可以使用这个例子 马上,或者我应该添加一个单词LEFT JOIN

提前致谢〜:)

2 个答案:

答案 0 :(得分:2)

您的查询等同于以下内容:

SELECT A.hospital_id, A.name, A.distance, B.name, A.near_gate 
FROM hospital A
JOIN station B ON A.station = B.id
WHERE A.campus='".$campus."' AND A.category='".$category."'

这是内部JOIN,而不是LEFT JOIN

更新

实际上,FROM table1, table2应该会产生CROSS JOIN。 但是数据库引擎很聪明,需要确定应该使用WHERE部分来确定JOIN条件并将其更改为INNER JOIN

答案 1 :(得分:1)

当您显示示例查询并且您说它工作正常时。对于它,您应该使用JOIN而不是LEFT JOIN。以下是查询:

SELECT A.hospital_id, A.name, A.distance, B.name, A.near_gate 
       FROM hospital A JOIN station B ON A.station = B.id 
            WHERE A.campus='".$campus."' AND A.category='".$category."'";