我的数据库中有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 +
+----+--------+
第3张表是从第1张和第2张创建的。 在我的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>";
有人可以帮助我吗?
答案 0 :(得分:0)
以下是它的工作原理:
查询:
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的蜱和十字架做同样的事情。