0

我需要使用 php 查询来查询数据库。

我需要获取与 $somevalue 匹配的 id 和具有该 ID 查询表 2 的 id,以便我可以获取包含在找到该 id 的行中的字段值。

$somevalue = '123';


Select id from table1 where $somevalue = id

...so we have the ID ... now we query table 2

select id, field2 from table2 where id = $id

echo $id;
echo $field2

如何在 php 查询中执行此操作?

4

5 回答 5

1

简单地试试这个。

 select t2.id, t2.field2 from table2 t2, table1 t1 where t1.id = t2.id and t1.id = $someValue

完整代码如下

$query = sprintf("select t2.id, t2.field2 from table2 t2, table1 t1 where t1.id = t2.id and t1.id = '%s'",
    mysql_real_escape_string($somevalue));

// Perform Query
$result = mysql_query($query);

while ($row = mysql_fetch_assoc($result)) {
    echo $row['id'];
    echo $row['field2'];
}
于 2013-03-04T13:55:38.137 回答
0

您的查询语法应如下所示:

Select id from table1 where id = $somevalue

但是为什么你想要你正在搜索的同一个 id 呢?你可以直接这样做:

select id, field2 from table2 where id = $somevalue

看起来一团糟:(

无论如何,您可以查看此链接以了解如何在 PHP 中执行查询

于 2013-03-04T13:51:44.950 回答
0

试试这个:

"SELECT * FROM table1 as t1 Left JOIN table2 as t2 ON t1.id = t2.id WHERE t1.id = ".$somevalue.""
于 2013-03-04T13:53:20.753 回答
0

使用内连接

SELECT table2.id table2.field FROM table1
INNER JOIN table2 ON table2.id = table1.id 

没有测试代码,我对 SQL(连接)很陌生。但是你看到了模式:)

于 2013-03-04T13:53:48.720 回答
0

您应该可以使用 a 来实现此目的JOIN,这是使用问题中的代码的示例

SELECT t2.field2
FROM table1 t1
JOIN table2 t2
   ON t1.id = t2.id
WHERE t1.id = $someValue

这里看起来不正确的是在它们的Id列上加入表格。这通常是主键,不太可能在连接的两侧使用。

从一个表到另一个表进行连接以重建数据模型。为了使这更具体一点,我将更table1改为People和。以下查询通过表获取特定人员的。在这种情况下,该表有一列在 Addresses 表中保存此人的table2AddressesStreetNamePeoplePeopleAddressIdId

SELECT a.StreetName
FROM People p
JOIN Addresses a
   ON p.AddressId = a.id
WHERE t1.id = $someValue

然后,您可以应用 PHP 提供的任何机制来运行查询

于 2013-03-04T14:24:26.163 回答