2014-03-02 33 views
0

選擇我有3個表如何從2和表2分或更多的條件與同一ID

表1 = ID ---特色----城市,...

表2 = ID - - latm1 ---- longm1 ---- latm2 ---- longm2,...(2 more lat and long)

table3 = id --- latd1 ---- longd1 ---- latd2- --- longd2,...(另外2個經緯度)

id是相同的,並且所有的lats和longs都是針對具有該id的一個人(他爲4醫院和其他4個工作位置)

考慮這個來自$ _POST的varbiales:

$ special;

$ userlat;

$ userlong;

我想說這個: 從他的專長=「$ speciality」的table1中選擇所有的東西,他靠近這個lat =「$ userlat」,long =「$ userlong」,距離爲4km;

我知道這聽起來很可笑,但是這是它是什麼:(

我使用這個mehtod在我的數據庫歌廳最近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,而不是其他的來自其他表(例如:latm2和longm2從表2或latd3從表3 longd3)

感謝您的耐心;

+0

這3張表如何相互關聯? –

+0

是的,就像我說的,每個人都有相同的ID爲每個人 – milad

+0

我不知道你在做什麼...'table2'和'table3'之間有什麼區別? – zchrykng

回答

0

是的,你可以!

在簡化的語法:

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

我把它有時在這個簡單的例子。