Php SQL表联接显示更多字段
我正在学习SQL,需要一些建议。这当前显示了我需要的内容,但是我还希望回显tw.model_id和model.id之间不匹配的所有其他字段。还有,如果有多个客户的名字,我将如何创建一个列表?非常感谢您的任何建议Php SQL表联接显示更多字段,php,mysql,sql,Php,Mysql,Sql,我正在学习SQL,需要一些建议。这当前显示了我需要的内容,但是我还希望回显tw.model_id和model.id之间不匹配的所有其他字段。还有,如果有多个客户的名字,我将如何创建一个列表?非常感谢您的任何建议 $sql = "SELECT * FROM tw INNER JOIN model ON model.id=tw.model_id WHERE tw.completed = 1 AND tw.stock = 0 ORDER BY model.id"; $result = $conn-
$sql = "SELECT * FROM tw
INNER JOIN model
ON model.id=tw.model_id
WHERE tw.completed = 1 AND tw.stock = 0
ORDER BY model.id";
$result = $conn->query($sql);
echo "<table cellspacing='0px' cellpadding='10px' align='center' width='100%'><tr>";
while($row = $result->fetch_assoc()) {
echo "<td width='7%' style='border:1px solid grey;'> " . $row["model_name"] . "<br />" . $row["quantity"] . "<br />";
echo $row["customer_name"] . "<br /></td>";
}
echo "</tr></table>";
目前它不显示Model2列,因为它在模型ID和无客户名称之间不匹配
表格布局
模型
tw
模型名称与两个表匹配
model.id与tw.model_id匹配。您需要外部联接。内部联接必须具有匹配项 这可能有助于: 将查询更改为:
SELECT * FROM tw
OUTER JOIN model
ON model.id=tw.model_id
WHERE tw.completed = 1 AND tw.stock = 0
ORDER BY model.id
外部联接将完全满足您的需要,即“我还想回显tw.model_id和model.id之间不匹配的所有其他字段”。请指定您在标记列中使用的数据库,而不是字段。添加示例表数据和预期结果。我添加了表布局,预期结果是model1、model2,model3 table$sql=“SELECT*FROM model LEFT OUTER JOIN tw ON model.model\u name=tw.model\u name ORDER BY model.id LEFT OUTER JOIN起作用。感谢您的帮助:)
id
model_name
quantity
id
model_name
customer_name
model_id
SELECT * FROM tw
OUTER JOIN model
ON model.id=tw.model_id
WHERE tw.completed = 1 AND tw.stock = 0
ORDER BY model.id