嗨,我想获得以下结果,以便在php中使用搜索脚本我有两张这样的桌子
Table 1 :
-----------------------------
id l name l url l image url l
-------------------------------
Table 2 :
-----------------------------------
id l tableoneid l desc l content l
------------------------------------
注意:(表1-->id)=(表2-->tableoneid)
我想做的是得到一个MYSQL查询,搜索:
- 步骤1:当我得到我需要的结果时,表2列[内容]它们的[tableoneid]值
- 步骤2:接下来我想使用它来搜索表1的第1列
- 第3步:最终结果将是步骤2结果的相应[image url]列
我如何用php/mysql 实现这一点
非常感谢!
类似这样的东西:
SELECT * FROM <Table 1>
WHERE id IN (
SELECT DISTINCT(tableoneid) FROM <Table 2>
)
使用实际的表名更改<Table 1>
和<Table 2>
。
这是JOIN的主要用途之一。
SELECT t1.`image url`
FROM `Table 2` AS t2
INNER JOIN `Table 1` AS t1 ON t2.tableoneid = t1.id
WHERE [some condition involving t1.content]
;
我强烈建议不要使用任何非字母字符(除了表和字段名中的_
)。
$query = "select
t1.`image url`
from
`Table 1` as t1
join
`Table 2` as t2 on t1.id = t2.tableoneid
where
t2.content = :table2ContentSearch";
$statement = $dbh->prepare($query);
$searchItem = "what you are searching for";
$statement->bindParam(':table2ContentSearch', $searchItem);
if($statement->execute()){
while($row = $statement->fetch()){
print_r($row);
}
}
您还应该了解sql联接。https://en.wikipedia.org/wiki/Join_%28SQL%29.