访问多个表Mysql

时间:2017-02-09 20:10:15

标签: mysql select where

嗨我看过很多关于这个类似于我的问题的答案,但没有一个有多个WHERE。 我试图查看我的数据库中是否存在跨多个表的内容。

我的代码如下:

<?php 


$sql = "SELECT id FROM groom, lroom, try WHERE groom.person = $a AND lroom.person = $a AND try.person = $a";

        $result = $conn -> query ($sql);


     if($result -> num_rows >0){
 //DO SOMETHING }else{//Dont do anything}   
    ?>

示例数据库

groom
id   room   person
1     4       1 

lroom
id   room   person
6     8       1 

try
id   court   person
8    2       1 


$a = 1;

结果应为1,6,8 非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

如果从3个表中需要相同的值,可以使用union

 select id 
 from groom
 where groom.person = $a
 union 
 select id 
 from lroom
 where lroom.person = $a
 union 
 select id 
 from try
 where try.person = $a

您只需要与所有3个表匹配的值

  SELECT id 
  FROM groom
  inner join on groom.person  = lroom.person 
  inner join try on groom.person = try.person 
  where groom.person= $a";

答案 1 :(得分:0)

不完全确定你要做什么,但从它的外观看,你需要这样的声明:

$sql = "SELECT groom.id AS groomid, lroom.id AS lroomid, try.id AS tryid FROM groom, lroom, try WHERE groom.person = ".$a." AND lroom.person = ".$a". AND try.person = ".$a;

如果$a不是整数或布尔值,则在SQL语句中添加引号:

$sql = "SELECT groom.id AS groomid, lroom.id AS lroomid, try.id AS tryid FROM groom, lroom, try WHERE groom.person = '".$a."' AND lroom.person = '".$a"'. AND try.person = '".$a."'";