我正在尝试使用INNER JOIN对我的数据库进行PHP PDO调用。
我想要做的三个连接如下:
KC_Orders -- Database Table Name
--orderNumber -- Relation Field
KC_Payments -- Database Table Name
--orderNumber -- Relation Field
KC_OrderStatus -- Database Table Name
--OrderNumber -- Relation Field
我想从表中获得更多信息,而不仅仅是订单号。
我对数据库的调用如下:
$sql = "SELECT * from `KC_Orders` INNER JOIN `KC_Payments` INNER JOIN `KC_OrderStatus`";
$ThreeRecentOrders = $db->query($sql);
然后在我的foreach
声明中,我有以下内容来显示结果。
<?php foreach($ThreeRecentOrders as $order): ?>
<?php $orderNumber = $order['orderNumber']; ?>
<tr>
<th><?php echo $orderNumber; ?></th>
<th><?php echo $order['billingFName']; ?> <?php echo $order['billingLName']; ?></th>
<th>$<?php echo number_format($order['order_total']/100,2); ?></th>
<th><?php echo $order['statusID']; ?></th>
</tr>
<?php endforeach; ?>
现在,一切正常但是我在系统中只有两个订单,这意味着现在每个数据库中有两行。 3 database joins
与2 rows in each field
3x2=6
我在foreach的桌子上得到了6个结果。它占据了每一行并回应了结果。这显然不是我的意图。我需要添加到数据库调用或sql来解决此问题?
答案 0 :(得分:1)
您需要实际指定要加入的列
即
select * from kc_orders
inner join kc_payments
on kc_orders.orderNumber = kc_payments.order_number
inner join kc_orderStatus
on kc_orders.orderNumber = kc_orderStatus.orderNumber