如何从具有2个或更多相同id的条件的2个表中进行选择

时间:2014-03-02 20:38:41

标签: php mysql

我有3张桌子

table1 = id ---专业----城市,......

table2 = id --- latm1 ---- longm1 ---- latm2 ---- longm2,...(2更多lat和long)

table3 = id --- latd1 ---- longd1 ---- latd2 ---- longd2,...(2更多lat和long)

id是相同的,所有lats和longs都是针对一个有id的人(他为4家医院和其他4种情况工作)

考虑来自$ _POST的这个varbiales:

$专业;

$ userlat;

$ userlong;

我想这样说:      选择table1中的所有东西,其中他的专长=“$ special”,他靠近这个lat =“$ userlat”,long =“$ userlong”,距离为4km;

我知道这听起来很荒谬但是就是这样:(

我正在使用这个方法在我的数据库中找到最近的latlang:

 $sql = "SELECT 
  *,
  (
    6371 * ACOS(
      COS(RADIANS($userlat)) * COS(RADIANS(latm1)) * COS(RADIANS(langm1) - RADIANS($userlang)) + SIN(RADIANS($userlat)) * SIN(RADIANS(latm1))
    )
  ) AS distance 
FROM
  ? 
HAVING distance < 20 ";

但如您所见,它只搜索latm1和longm1,而不是其他表中的其他表(例如:来自table2的latm2和longm2或来自table3的latd3和longd3)

感谢您的耐心等待;

1 个答案:

答案 0 :(得分:0)

是的,你可以!

简化语法:

$sql = "SELECT table1.id, table1.val, table2.id, table2.val 
FROM table1, table2 WHERE table1.id = table2.id";

我有时会在这个简单的例子中留下它。