使用php和sql显示内连接的结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用php和sql显示内连接的结果相关的知识,希望对你有一定的参考价值。

我有以下表格列名:

rides: id, creator, title, datetime, city, state, details
states: id, state, image
user: id, username, name, password, email, city, state

我有以下php / sql代码使用内部联接从表中获取信息:

$sql = "select * from ((rides inner join states on rides.state = states.id) inner join user on rides.creator = user.id) where rides.id=" . $ride;
$result = mysqli_query($dbcon, $sql);
$row = mysqli_fetch_assoc($result);

我遇到的问题是我想显示状态表中的状态字段,用户表中的用户名字段以及来自游乐设施的所有其他信息,但我不确定如何执行此操作。我尝试了以下显示状态,但它不起作用:

echo $row['state']; //this displays the state field from the rides table
echo $row['states.state']; //this displays nothing

我的想法是因为不同的表具有相同的列名,它将从第一个(游乐设施)表中获取信息。它是否正确?如果是这样,是否有办法让它引用不同的表,或者我是否需要重命名列以使它们具有不同的名称?

任何帮助表示赞赏。

答案

选择所需的字段:

select rides.*, states.state, user.username
. . .

现在,连接不需要括号。表别名使查询更容易编写和读取。最后,您应该学会使用参数。因此,查询应如下所示:

select r.*, s.state, u.username
from rides r inner join
     states s
     on r.state = s.id inner join
     user u
     on r.creator = u.id
where r.id = ?

?是参数的占位符。

以上是关于使用php和sql显示内连接的结果的主要内容,如果未能解决你的问题,请参考以下文章

sql查询:使用内连接查询两张表的时候,如果左边表的一条记录对应了右边表的两条记录,结果显示排列问题

SQL中内连接和外连接的区别

mysql只能取出一条记录为啥不显示

使用 json rereiver php mysql 在片段中填充列表视图

PHP createTextNode() 使用 saveHTML() 仅显示文本

连接两表查询结果的SQL语句