2014-10-29 50 views
1

我是mysql新手...我正在处理其他程序。我有2个表产品和卖家。这些表已连接,并且在卖方表中进行了连接。我想要显示产品表中的产品名称,并显示已进行产品输入的卖方。查询MySql表

这是我的显示产品表:

public function getProductName($product_id,$language_id) { 
$query = $this->db->query("SELECT name FROM " . DB_PREFIX . "product_description WHERE 
          product_id = '".(int)$product_id."' 
          AND language_id = '".(int)$language_id."'"); 
    if($query->row AND $query->row['name'] != '') { 
    return $query->row['name']; 
    } else { 
     return '-'; 
    } 
} 

卖方表有场seller_nameseller_idsproduct_id。我怎样才能拉出每个产品的关联卖家名称?

任何帮助表示赞赏!

感谢, 汤姆

+0

您想要所有的产品名称还是只为相应的product_id? – Mihai 2014-10-29 15:53:46

+0

感谢您的回复!数据库中的所有产品名称,并显示进入该条目的卖家。 'sproduct_id'关联卖家输入的产品。 – user2171400 2014-10-29 15:58:22

回答

0

你会想这两个表连接在一起的共同product_id关键。这是你想要的结果Sql。另外,如果PRODUCT_ID和LANGUAGE_ID是整数,在数据库中(因为他们似乎是在PHP),你可以删除“”:

"SELECT pd.name, s.seller_name 
FROM " . DB_PREFIX . ".product_description pd 
    INNER JOIN " . DB_PREFIX . ".Seller s on pd.product_id = s.sproduct_id 
WHERE 
    product_id = ".(int)$product_id." 
    AND language_id = ".(int)$language_id.";"; 
+0

嗨Sutart ...我感谢您的回复,我会尝试这个并让您知道...谢谢! – user2171400 2014-10-29 16:00:03

+0

是的 - 我们正在将'product_description.product_id'加入'Seller.s.sproduct_id' - 我只是将这两个表别名。 – StuartLC 2014-10-29 16:02:26

+0

是的,我意识到,在二读时...我现在会尝试...再次感谢! – user2171400 2014-10-29 16:04:31

0

使用代码:

public function getProductName($product_id, $language_id) 
{ 

    $strSQL = "SELECT p.name, s.seller_name FROM " . DB_PREFIX . 
       "product_description p INNER JOIN " . DB_PREFIX . 
       "Seller s ON p.product_id = s.sproduct_id WHERE product_id = '" . 
       intval($product_id) . "' AND language_id = '" . 
       intval($language_id) . "'"; 

    $query = $this->db->query($strSQL); 
    if($query->row AND $query->row['name'] != '') { 
     return $query->row['name']; 
    } else { 
     return '-'; 
    } 
} 

如果PRODUCT_ID和LANGUAGE_ID是你不需要将它们放在''中的整数值。还要记住添加错误检查以确保$ product_id和$ language_id具有有效的查询值。有关SQL joins的更多信息。快乐的编码。