MYSQL双表搜索与查询中的变量

时间:2016-04-20 22:54:52

标签: php mysql

您好我想在php 中使用搜索脚本来实现以下结果 我有2张这样的桌子

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步结果的相应[图片网址]列
  4. 我怎样才能用php / mysql

    实现这一目标 非常感谢你!

3 个答案:

答案 0 :(得分:0)

这样的事情:

SELECT * FROM <Table 1>
WHERE id IN (
    SELECT DISTINCT(tableoneid) FROM <Table 2>
)

使用您的实际表名更改<Table 1><Table 2>

答案 1 :(得分:0)

这是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]
;

强烈建议您的表格和字段名称中没有任何非字母字符(_除外)。

答案 2 :(得分:0)

$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