![](/img/trans.png)
[英]PHP/MySQL - Select all the rows where column from table 1 is equal to column from table 2
[英]MySQL/PHP - Select all the rows where column from table 1 is equal to column from table 2 and creating a foreach loop
我正在寻找一种可以从MySQL表中选择所有行的方法,其中table1中的列等于表2中的列。
这是我想通过代码描述的内容。 我试过了,但没有任何反应。
SELECT * FROM `table1` WHERE `table1.id`= `table2.id` ORDER by `table1.name` ASC;
然后,当我选择这些行时,我必须将其中一些回显到foreach循环中,如下所示:
<?PHP
foreach($results as $row){
echo $row['table1.name'];
}
?>
您能给我一种使此事情发生的正确方法的答案吗?
提前致谢!
在FROM
部分中使用两个表
SELECT * FROM `table1`, `table2` WHERE `table1.id`= `table2.id` ORDER by `table1.name` ASC;
或像这样使用INNER JOIN
SELECT * FROM `table1` INNER JOIN `table2` ON `table1.id`= `table2.id` ORDER by `table1.name` ASC
&然后获取这样的值,您不需要$ row []中的别名,但是列(或它们各自的别名)必须是唯一的
<?PHP
$query = "SELECT * FROM `table1`, `table2` WHERE `table1.id`= `table2.id` ORDER by `table1.name` ASC";
$res = mysqli_query($conn, $query);
while($row = $mysqli_fetch_assoc($res)){
echo $row['name'];
}
?>
答案假设您已创建一个名为$ conn的数据库连接
使用mysql 加入
SELECT * FROM `table1` inner join table2 on `table1.id`= `table2.id` ORDER by `table1.name` ASC;
或完整的代码是
<?PHP
$query = "SELECT * FROM `table1` inner join table2 on `table1.id`= `table2.id` ORDER by `table1.name` ASC";
$res = mysqli_query($conn, $query);
$row = $mysql_fetch_array($res);
foreach($row as $rows){
//Add colum name
echo $rows['name'];
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.