Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从具有相同id的2个或多个条件的2个表中进行选择_Php_Mysql - Fatal编程技术网

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

Php 如何从具有相同id的2个或多个条件的2个表中进行选择,php,mysql,Php,Mysql,我有三张桌子 表1=id专业城市 表2=id-latm1-longm1-latm2--longm2,…再增加2个lat和long 表3=id-latd1-longd1-latd2——longd2,…再增加2个lat和long id是相同的,所有的LAT和LONG都是为一个id为的人提供的。他在4家医院和4家其他机构工作 考虑一下$\u POST提供的varbiales: 美元特产 $userlat $userlong 我想说: 从表1中选择所有内容,其中他的专业=$speciality,他靠近这

我有三张桌子

表1=id专业城市

表2=id-latm1-longm1-latm2--longm2,…再增加2个lat和long

表3=id-latd1-longd1-latd2——longd2,…再增加2个lat和long

id是相同的,所有的LAT和LONG都是为一个id为的人提供的。他在4家医院和4家其他机构工作

考虑一下$\u POST提供的varbiales:

美元特产

$userlat

$userlong

我想说: 从表1中选择所有内容,其中他的专业=$speciality,他靠近这个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,而不搜索其他表中的其他值,例如:表2中的latm2和longm2或表3中的latd3和longd3

谢谢你的耐心

是的,你可以

简化语法:

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

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

这三个表之间是如何相互关联的?它们之间有什么关系?是的,就像我说的,每个表对每个人都有相同的id。我不知道您想做什么。。。表2和表3的区别是什么?你所说的区别是什么意思?有3个表,每个表都有一个id,还有一些其他冒号,我在每个表中用相同的id排一行,好吗?