Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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 Mysql将三个查询合并为一个查询_Php_Mysql - Fatal编程技术网

Php Mysql将三个查询合并为一个查询

Php Mysql将三个查询合并为一个查询,php,mysql,Php,Mysql,我有三个问题: $data1 = mysql_query("SELECT * FROM 'table1' WHERE post_status = 'publish' AND 'post_title' LIKE '$letter%' ORDER BY 'post_title' ASC") or die(mys

我有三个问题:

$data1 = mysql_query("SELECT * 
                        FROM 'table1' 
                       WHERE post_status = 'publish' 
                         AND 'post_title' LIKE '$letter%' 
                    ORDER BY 'post_title' ASC") or die(mysql_error()); 

while($info1 = mysql_fetch_array( $data1 )){ 
  $id = $info1['ID']; 
  $data2 = mysql_query("SELECT * 
                          FROM 'table2' 
                         WHERE post_id='$id' 
                           AND key = 'the_key'")  or die(mysql_error());  

   while($info2 = mysql_fetch_array( $data2 )){
     $key = $info2['value'];
   } 

   if ($key == 'something') {
     echo "..."; 
     $data3 = mysql_query("SELECT * 
                             FROM 'table3' WHERE postnumber='$id'")
                or die(mysql_error());
       while($info3 = mysql_fetch_array( $data3 )){
         echo $info3['counter'];
       }
       echo "...";
    }
 }
我想使用一个查询作为三个有时需要的查询,我尝试过的查询需要更长的时间


我花了很长时间试图解决这个问题;这不是“为我做”,但请帮助。

在id上加入您的三个表

是的,我可以给你看一些例子,但是,已经有很多SQL连接的例子了。如果你看过其中的一个,并且有一个问题,问它。但是,如果你还没有看,让我不要再花时间重新写你能更快地在谷歌上找到的东西。(我不是想成为一个聪明人,只是想最有效地利用我和你的时间。)


你应该使用左连接吗?还是加入equ?我不知道,我不知道你的数据。如果你想复制你现在的代码,你可以使用左连接。然而,equ联接可能是您实际想要的。

最大的问题是,在迭代第二个查询之后,您获取返回的最后一行的“值”


但是您不能依赖于从数据库返回的行的顺序,因此您的查询是不确定的。

您有什么理由避免代码中的换行符吗?代码是不可读的。重新格式化,使其易读。不要使用
标签;缩进四个(或更多)空格。将材料分成几行(理想情况下,这样你就不会看到水平滚动条,而是以某种方式将其分成几行)。你能编辑它使其可读吗?:)我总是这样做,我似乎不能让stackoverflow显示我的脚本be@alfie:不要使用标签-这会混淆事物。不要使用
标签;这可不是什么好事。请使用输入文本框上方的“{}”按钮将代码缩进4个空格。这可能是我的问题之一,我尝试退出了一些查询,但它们都需要更多的时间。。不确定我是否应该使用左外连接,内连接。。。