最有效的方式,以MySQL查询中查询
问题描述:
我只是学习PHP的,我有一个问题 我们只想说,我有MySQL表“A”最有效的方式,以MySQL查询中查询
Name | Job
--------|---------
Jynx | 1
Micah | 4
Nancy | 3
Turah | 1
而另一台“B”
JobId | JobName
-------|-----------
1 | Lawyer
2 | Architec
3 | Farmer
4 | Mage
5 | Warrior
因此,据说在PHP中,我想绘制表格显示表格“A”的内容,但不是在“Job”colomn中显示数字,而是分别显示表格“B”中的作业名称。 什么是最有效的方法呢? 现在,我只是想用
$conn = My database connect setting
$sql = "SELECT * FROM tableA ORDER BY Name";
$result = $conn->query($sql);
while($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>". $row['Name'] ."</td><td>";
$sql2 = "SELECT * FROM tableB WHERE JobId=$row['Job']";
$result2 = $conn->query($sql2);
while($row2 = mysqli_fetch_assoc($result2)) {
echo "<td>". $row2['JobName'] ."</td></tr>;
}
}
的但不会是占用大量计算proccess是否有与行的hundreed多个similliar colomn的?
有没有更有效的方法来做到这一点?
对不起,我的英语不好
感谢您的关注。
答
一个连接绝对是这里的路。
SELECT a.Name, b.JobName
FROM tableA a
JOIN tableB b on (a.Job = b.JobId)
ORDER BY a.Name
答
好吧,学习JOIN并不容易,现在没时间了,但我会后去学习它。
至于现在,我只是得到了主意,只使用ARRAY代替 所以之前我画主表,我给你的支持表(表二)为关联数组
$sql = "SELECT * FROM tableB ORDER BY Id";
$result = $conn->query($sql);
while($row = mysqli_fetch_assoc($result)) {
$job[$row['JobId']] = $row['JobName'];
}
,并在主表
$sql = "SELECT * FROM tableA ORDER BY Name";
$result = $conn->query($sql);
while($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>". $row['Name'] ."</td><td>". $job[$row['Job']];
}
这就是为什么你应该学习SQL JOINs –
“我只是学习PHP”是的。现在该开始学习(My)SQL了。 – Strawberry
是的,如果没有存储空间,你不会得到太多的东西。而MySQL就像它变得简单一样。 – akronymn