0

我的数据库中有 3 个表

+----+--------+  +----+--------+  +----+--------+
+ id +  name  +  + id +  name  +  + id +  name  +
+----+--------+  +----+--------+  +----+--------+
+ 12 + banana +  + 2  + mario  +  + 1  + apple  +
+ 5  + apple  +  + 5  + luigi  +  + 2  + banana +
+ 7  + luigi  +  + 99 + apple  +  + 3  + input  +
+----+--------+  + 14 + input  +  + 4  + luigi  +
                 +----+--------+  + 5  + mario  +
                                  +----+--------+

第三张桌子是从第一张和第二张创建的。在我的 HTML 文件中,有一个从表 3 中获取所有“名称”的表。
在第一列中有所有 table3.name,在第二、第三列中,我需要像这样检查:

+--------+------+------+
+ name   + tab1 + tab2 +
+--------+------+------+
+ apple  +   V  +   V  +
+ banana +   V  +   X  +
+ input  +   X  +   V  +
+ luigi  +   V  +   V  +
+ mario  +   X  +   V  +
+--------+------+------+

我在 html 文件中创建了表格的整个结构,但我无法进行“检查”。

$result = $data->query("SELECT * FROM `table3` ORDER BY `table3`.`name` ASC  ");
while($line = mysql_fetch_array($result))
{       
    echo '<tr><td>'.$line['name'].'</td>';

    echo '<td></td>';
    echo '<td></td>';
    echo '<td></td>';
    echo '<td></td>';
    echo '<td></td>';
    echo '<td></td></tr>';
    }     
echo "</table>";

有人可以帮助我吗?

4

1 回答 1

1

以下是它的工作原理:

询问:

SELECT t3.name,t2.id t2_id,t1.id t1_id
FROM table3 t3
LEFT JOIN table2 t2 ON t2.name=t3.name
LEFT JOIN table1 t1 ON t1.name=t3.name

在代码中:

if(!empty($line['t2_id'])) {
  echo 'tick'; 
} else {
  echo 'cross'; 
}

对表 1 的刻度和交叉执行相同的操作。

于 2013-09-11T09:47:53.350 回答