Php 当可以在两个表中进行搜索时,从相关的MySQL表中检索相关信息的有效查询是什么
我有两个MySQL表,如下所示,我使用php运行我的查询 表aPhp 当可以在两个表中进行搜索时,从相关的MySQL表中检索相关信息的有效查询是什么,php,mysql,Php,Mysql,我有两个MySQL表,如下所示,我使用php运行我的查询 表a +--------+--------+--------+--------+ | taf1 | taf2 | taf3 | taf4 | +========+========+========+========+ | dataa1 | dataa2 | dataa3 | dataa4 | +--------+--------+--------+--------+ | datab1 | datab2 | datab3 |
+--------+--------+--------+--------+
| taf1 | taf2 | taf3 | taf4 |
+========+========+========+========+
| dataa1 | dataa2 | dataa3 | dataa4 |
+--------+--------+--------+--------+
| datab1 | datab2 | datab3 | datab4 |
+--------+--------+--------+--------+
| datac1 | datac2 | datac3 | datac4 |
+--------+--------+--------+--------+
| datad1 | datad2 | datad3 | datad4 |
+--------+--------+--------+--------+
表b
+--------+--------+--------+--------+
| tbf1 | tbf2 | tbf3 | tbf4 |
+========+========+========+========+
| dataa5 | dataa6 | dataa7 | dataa4 |
+--------+--------+--------+--------+
| datab5 | datab6 | datab7 | datab4 |
+--------+--------+--------+--------+
| datac5 | datac6 | datac7 | datac4 |
+--------+--------+--------+--------+
| datad5 | datad6 | datad7 | datad4 |
+--------+--------+--------+--------+
taf1
、taf2
、taf3
和taf4
是第一个表的字段,tbf1
、tbf2
、tbf3
和tbf4
是第二个表的字段taf4
和tbf4
具有相同的条目,用于链接两个表。在结果页面中,我显示taf1
、taf2
、taf3
和tbf1
字段。此外,可以在这4个字段中进行搜索(提供了一个下拉列表,以便用户可以选择搜索字段)。我该怎么做
目前,我使用以下代码
$key = "keyword";
$field = "fieldname";
if($field == "tbf1"){
$engine = "table_b";
//search in table_b. code incomplete.
}else{
$query = "SELECT * FROM table_a WHERE $field LIKE '%$key%'";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)){
$link = $row['taf4'];
$query2 = "SELECT NUMBER FROM table_b WHERE tbf4 = '$link'";
$result2 = mysql_query($query2);
$row2 = mysql_fetch_array($result2);
echo $row['taf1']." - ".$row['taf2']." - ".$row['taf3']." - ".$row2['tbf1']."<br />";
}
}
$key=“关键字”;
$field=“fieldname”;
如果($field==“tbf1”){
$engine=“表b”;
//在表中搜索。代码不完整。
}否则{
$query=“从表a中选择*,其中的$字段类似“%$key%””;
$result=mysql\u query($query);
while($row=mysql\u fetch\u数组($result)){
$link=$row['taf4'];
$query2=“从表b中选择编号,其中tbf4='$link';
$result2=mysql\u查询($query2);
$row2=mysql\u fetch\u数组($result2);
echo$row['taf1']。“-”$row['taf2']。“-”$row['taf3']。“-”$row2['tbf1']。“
”;
}
}
有什么简单有效的方法可以做到这一点吗?@MarkBaker你能发布代码吗..这是你真正需要学习的东西-@MarkBaker好的:)我同意我确实需要学习它。但是你能发布一个代码来解决我当前的问题吗?什么是
taf
和tbf
?@blasteralfredψ这是一个表别名,表的另一个名称。taf
和tab
是表a
和表b
的别名。。。在使用联接时,我总是倾向于使用别名,因为有时需要多次对同一个表进行联接,而别名是唯一标识符
SELECT taf.*,
tbf.*
FROM table_a taf
INNER JOIN table_b tbf
ON tbf.tbf4 = taf.taf4
WHERE taf......