php – 选择多个表mysql

我试图用where子句选择两个表,

问题:我得到的结果超过2.像123451111这样我只有两个值为1的ID.我想我做错了.

这些表格没有相同的结构,也没有任何关联.有任何想法吗?

<?php include_once("config.php");
   $s = '1';
$stmt =$mydb->prepare("select * FROM table1,table2 where table1.id = ? or table2.id = ?");
stmt->bind_param('ss', $s, $s);
echo $mydb->error;
$stmt->execute();

?>
<?php
$results  = $stmt->get_result();
while ($row = $results->fetch_assoc()) {
echo $row['id']."<br/>";
}
?>
最佳答案
你需要在table1和table2之间的某个唯一列上加入一个连接,比如id.

select * FROM table1,table2 where table1.id = table2.id;

此外,您可以有多个过滤条件(假设您要过滤id = 101的表格 –

select * 
FROM table1,table2 
where table1.id = table2.id
and table1.id = 101;

希望这可以帮助.每当SQL语句中有多个表时,您需要加入它们,否则引擎会生成笛卡尔积,就像数学集理论中的笛卡尔积一样.

基本上你应该至少有n-1个连接条件,其中n是使用的表的数量.

转载注明原文:php – 选择多个表mysql - 代码日志