嗨我看过很多关于这个类似于我的问题的答案,但没有一个有多个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 非常感谢任何帮助
答案 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."'";