PHP MYSQL选择查询两个具有公共字段的表
我需要从具有相同列租约的两个表中获取记录。我使用下面的代码从$q等于lease列的表行中获取记录。这很好,但是我想从不同的表单元中获取记录,这些表单元在同一个select查询中也有一个lease列,并在while循环中使用所有这些记录。下面是我当前用于从一个表中提取数据的代码,请有人帮助我修改代码以从两个表中提取数据。这可能吗?还是我走错了方向?我试过寻找加入,但我似乎不能让我的头围绕它,尝试了许多例子,但似乎没有一个工作PHP MYSQL选择查询两个具有公共字段的表,php,mysql,Php,Mysql,我需要从具有相同列租约的两个表中获取记录。我使用下面的代码从$q等于lease列的表行中获取记录。这很好,但是我想从不同的表单元中获取记录,这些表单元在同一个select查询中也有一个lease列,并在while循环中使用所有这些记录。下面是我当前用于从一个表中提取数据的代码,请有人帮助我修改代码以从两个表中提取数据。这可能吗?还是我走错了方向?我试过寻找加入,但我似乎不能让我的头围绕它,尝试了许多例子,但似乎没有一个工作 $sql = "SELECT * FROM rows WHERE
$sql = "SELECT * FROM rows WHERE lease = '".$q."'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "row " . $row["row_id"]. "Capacity" . $row["capacity"]. "<br>";*/
}
要从共享公共值的两个表中获取值,请使用联接 例如: 此查询将为您提供所有匹配的行,并排除不匹配的行 相反,如果希望从第一个表中获取所有行,以及从第二个表中获取匹配的行,请将内部联接更改为左联接 这将为您提供表1中的所有行、表2中的所有匹配行以及表2中行不匹配的空值
由于您使用的是PHP—如果表包含具有相同名称的其他字段,则需要在select查询中对它们进行别名,以使它们在结果集中都可用。例如,选择table1.somevalue作为值1,table2.somevalue作为值2使用连接。$q是否来自用户输入?是的$q来自选择框。然后不要将其直接输入到查询中。使用事先准备好的陈述。这将为SQL注入打开大门。^^。很好,您正在使用mysqli,您还应该研究准备好的语句和参数绑定。感谢各位,修改我的代码以使用链接线程中指定的准备好的语句。当我没有在select语句的末尾添加WHERE lease=q子句时,这会起作用。我可以访问这两个表中的所有记录,但是我只需要那些从用户输入中=$q变量的记录。有没有办法做到这一点,或者我在你的回答中遗漏了什么。在你的回答之后应该去哪里。。。加入。请参考文档中的示例。
select *
from table1
inner join table2
on table1.common_field = table2.common_field