如何比较2个表的数据?

时间:2013-07-28 08:22:19

标签: php arrays

如何比较同一数据库中的2个表数据。例如:

Table 1:
--------
Order number, user_id etc

Table 2:
--------
Order number

=>一个用户可以制作多个订单。因此,我需要检查具有表2订单号的用户的所有订单。如果找到则会打印为true,否则为false。我正在尝试以下代码:

$user = JFactory::getUser();
$user_id= $user->get('id');

$db = JFactory::getDbo();
$db->setQuery("SELECT virtuemart_user_id, order_number, order_total, created_on FROM `#__virtuemart_orders` WHERE `virtuemart_user_id`='$user_id' AND `order_status`='C'");
$row = $db->loadRowList();

foreach($row as $d){

// I NEED TO COMPARE THE LOGIC HERE WITH THE SECOND TABLE. If it found match 
// with table 2 then another column will be created & print out that 
// "We found your order"

echo "<tr>";
echo "<td><a href='index.php?option=com_virtuemart&view=orders&layout=details&order_number=".$d['1'] ."'target='_blank'>".$d['1']."</a></td>";
echo "<td><a href='index.php?option=com_virtuemart&view=orders&layout=details&order_number=".$d['1'] ."'target='_blank'>".$d['2']."</td>";
echo "<td><a href='index.php?option=com_virtuemart&view=orders&layout=details&order_number=".$d['1'] ."'target='_blank'>".$d['3']."</td>";
echo "</tr>";

}

1 个答案:

答案 0 :(得分:0)

您可以在查询中使用sql执行此操作:

这样的东西
SELECT virtuemart_user_id, user_name, COUNT(virtuemart_order_id) AS num_orders
FROM virtuemart_users
LEFT JOIN virtuemart_orders USING (virtuemart_user_id)
WHERE `virtuemart_user_id`='$user_id' AND `order_status`='C'

将给出一个表格,其中包含每个用户的ID,名称和已完成订单的数量(实际上,我们设法匹配的行数)。

您可以使用相同的逻辑从virtuemart_orders表转到另一个表,如果您只想要两个表都具有共享ID的行,则可以使用JOIN而不是LEFT JOIN。< / p>