我有表格Tabela A
,Tabela B
,Tabela C
。我想在表Consulta
結果:查詢3個表格,在一個表格中顯示結果
Tabela A Tabela B
---------------------------------
ID_A | Cidade ID_B | Cidade
---------------------------------
1 | Porto 1 | Preto
2 | Braga 2 | Verde
3 | Lisboa 3 | Amarelo
4 | Coimbra 4 | Branco
Tabela C
-------------------
ID_C | ID_A | ID_B
-------------------
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
4 | 2 | 2
5 | 2 | 3
6 | 2 | 4
7 | 3 | 2
8 | 3 | 3
9 | 4 | 1
10 | 4 | 3
11 | 4 | 4
Tabela Consulta
-----------------------------------------------
ID_C | Cidade | Cor
-----------------------------------------------
1 | Porto | Preto; Verde;
2 | Braga | Preto; Verde; Amarelo; Branco
3 | Lisboa | Verde; Amarelo;
4 | Coimbra | Preto; Amarelo; Branco;
我有解決方案,但要慢,因爲我有15條000記錄顯示。 任何人都可以幫我改善時間,或給我另一種解決方案。
<? php
$sql1 = "SELECT * FROM tabela_a order by id ASC";
$resultado = mysql_db_query($database, $sql1);
while ($registo = mysql_fetch_array($resultado)) {
$id_a = $registo["id"];
$cidade = $registo['cidade'];
echo $id_a; ?> : <? php
echo $cidade; ?> : <? php
$sql2 = "SELECT id_b FROM tabela_c where id_a=$id_a";
$resultado2 = mysql_db_query($database, $sql2);
$quantreg = mysql_num_rows($resultado2);
$i = 0;
while ($i < $quantreg) {
$registo2 = mysql_fetch_array($resultado2) or die(mysql_error());
$id_b = $registo2["id_b"];
$sql3 = "select * from tabela_b where id=$id_b";
$resultado3 = mysql_db_query($database, $sql3);
$registo3 = mysql_fetch_array($resultado3) or die(mysql_error());
$cor = $registo3["cor"];
echo $cor."; ";
$i++;
}
?>
</br>
<?php
}
?>
嘗試通過使用'limit'來使用分頁。 ref:http://razorsql.com/articles/mysql_limit_query.html – 2014-11-21 11:43:36