查询两个表以获取mysql + php查询中的结果

时间:2015-02-17 05:57:01

标签: php mysql

我有两张桌子。

表1包含字段:

| Ensemble_ID | varchar(50) | NO   | PRI |         |       |
| Target      | text        | YES  |     | NULL    |       |
| Gene_Length | int(5)      | YES  |     | NULL    |       |
| miRNA       | varchar(50) | NO   | PRI |         |       |
| position    | int(4)      | YES  |     | NULL    |       |
| Prediction  | text        | YES  |     | NULL    |       |

和我的表2包含字段:

|Ensemble_ID   | varchar(50)  | NO   | PRI |         |       |
| miRNA        | varchar(50)  | NO   | PRI |         |       |
| miRNA_Length | int(2)       | YES  |     | NULL    |       |
| mfe          | decimal(2,0) | YES  |     | NULL    |       |
| pvalue       | decimal(4,0) | YES  |     | NULL    |       |
| no_of_seeds  | int(1)       | YES  |     | NULL    |       |

我需要像

这样的结果
|Ensemble_ID    |Gene Length|miRNA|miRNA Length|mfe|P-value|Position|Prediction|No of Seeds|

我是mysql的新手。任何人都可以帮我写出一个查询。

帮助表示感谢。

这是我的php附件..我无法获得结果,因为它显示查询错误

<?php
$a = $_REQUEST["miRNA"];
$b = $_REQUEST["target"];
// $result = db::table("`table`") -> pluck("*") -> where("miRNA",$a) -> select() -> get();
$mysqli = new mysqli("localhost", "root", "password", "mysql");
$a = $mysqli -> escape_string($a);
$b = $mysqli -> escape_string($b);
$a = $mysqli->query("SELECT * FROM bio3 WHERE miRNA = '$a' AND Target LIKE '%$b' INNER JOIN bio4 on bio3.ensemble_id = bio4.ensemble_id  ORDER BY bio4.pvalue ASC;");


// $result = $a -> fetch_assoc();
$i = 0;
while ($row = $a -> fetch_assoc()) {
$result[$i] = $row;
$i++;

}
$mysqli->close();
for($a=0;$a<sizeof($result);$a++){
print '<tr>
<td>'.htmlentities($result[$a]["Target"]).'</td>
<td>'.htmlentities($result[$a]["Gene Length"]).'</td>
<td>'.htmlentities($result[$a]["miRNA"]).'</td>
<td>'.htmlentities($result[$a]["miRNA Length"]).'</td>
<td>'.htmlentities($result[$a]["mfe"]).'</td>
<td>'.htmlentities($result[$a]["pvalue"]).'</td>
<td>'.htmlentities($result[$a]["position"]).'</td>
<td>'.htmlentities($result[$a]["Prediction"]).'</td>
<td>'.htmlentities($result[$a]["No of Seeds"]).'</td>
</tr>';
}
?>

3 个答案:

答案 0 :(得分:0)

加入两个表格,如:

SELECT t1.Ensemble_ID, t1.Gene_Length, t1.miRNA, t2.miRNA_Length, t2.mfe, t2.pvalue, t1.position, t1.Prediction, t2.no_of_seeds
FROM table1 t1 INNER JOIN table2 t2
ON t1.Ensemble_ID = t2.Ensemble_ID
WHERE t1.miRNA = 'abc' 
AND t1.target LIKE '%xyz' 
ORDER BY t2.pvalue ASC;

答案 1 :(得分:0)

使用加入来获得所需的结果。见下文:

SELECT 
      A.Ensemble_ID,
      Gene_Length,
      A.miRNA,
      miRNA_Length,
      mfe,
      Pvalue,
      Position,
      Prediction,
      No_of_Seeds,
FROM Table1 A
JOIN
Table2 A ON A.Ensemble_ID=B.Ensemble_ID

答案 2 :(得分:0)

您可以像这样查询...

SELECT 
  A.Ensemble_ID,
  Gene_Length,
  A.miRNA,
  B.miRNA_Length,
  B.mfe,
  B.Pvalue,
  Position,
  Prediction,
  No_of_Seeds,
FROM Table1 A
JOIN
Table2 B ON A.miRNA=B.miRNA
相关问题