INNER JOIN을 사용하여 데이터베이스에 PHP PDO 호출을 시도하고 있습니다.PHP PDO에서 INNER JOIN을 선택하십시오.
세 내가 만들려고 조인 다음과 같습니다 그래도 난 단지 순서 번호보다 테이블에서 더 많은 정보를 얻을 꿔
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
with 2 rows in each field
3x2=6
foreach에서 내 테이블에 6 개의 결과가 나타납니다. 모든 행을 가져 와서 결과를 반향시키고 있습니다. 이것은 분명히 내가 의도 한 것이 아니었다. 이 문제를 해결하려면 데이터베이스 호출 또는 SQL에 무엇을 추가해야합니까?
무슨에 합류? '... INNER JOIN KC_Payments USING (orderNumber) ... '과 비슷한 것을 보길 원한다면, 외래 키 인덱스에 합류하지 않는 것으로 보입니다. – CD001
아마도'ON' 절을 추가한다면 :'SELECT * FROM KC_Orders o INNER JOIN KC_Payments p ON o.orderNumber = p.orderNumber ...'? –