[英]PHP Join tables mysql
所以我有两张桌子:
表1 (销售额)
表 2 (用户)
这就是我查询值的方式:
<?php
$query = "SELECT * FROM sales WHERE status='OK' ORDER BY STR_TO_DATE(`date`, '%Y/%m/%d %H:%i:%s') DESC LIMIT 5";
if ($result = $link->query($query)) {
$num_rows = 0;
while ($row = $result->fetch_assoc()) {
$num_rows++;
echo '<div class="my-box">';
echo "{$row['id']}";
echo "{$row['date']}";
echo "{$row['dbirth']}";
echo "{$row['email']}";
echo "{$row['ident']}";
echo '</div>';
}
$result->free();
}
?>
现在,它回ident
了该行的标识,但是为了显示标识,我是为了显示具有Fullname
标识的全名。 我尝试了类似SELECT * FROM sales LEFT JOIN users on sales.id = users.id
,但这并没有给我Fullname
。 有小费吗?
您的 SQL 似乎是错误的。
当你加入表时,这样做。
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
如果您正确加入表格,您将能够检索“全名”列。
我相信 Ident 字段将是用户表中的主键和销售表中的外键。 如果是,这将返回所需的结果以及两个表中列出的其他字段。
SELECT sales.ID AS sales_ID,sales.Ident AS Identity,Date,Status,Fullname,Email FROM sales
INNER JOIN users ON sales.Ident = users.Ident
WHERE status='OK'
ORDER BY STR_TO_DATE(`date`, '%Y/%m/%d %H:%i:%s')
DESC LIMIT 5
如果日期字段更新为日期或日期时间,只需使用
ORDER BY DATE
为了更好的数据库实践:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.