1

下面是 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

提前谢谢~:)

4

2 回答 2

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.

于 2013-07-11T06:43:14.807 回答
1

当您显示示例查询时,您说它工作正常。为此,您应该使用JOINnot a 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."'";
于 2013-07-11T06:45:54.817 回答