MYSQL双表搜索,查询中包含变量


MYSQL double table search with variables in query

嗨,我想获得以下结果,以便在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. 步骤1:当我得到我需要的结果时,表2列[内容]它们的[tableoneid]
  2. 步骤2:接下来我想使用它来搜索表1的第1列
  3. 第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.