如何从我的桌子获取值?

时间:2015-01-12 16:21:31

标签: php mysql pdo

假设我必须使用像这样的MySQL表。

TBL_1

ID - NAME - DESCRIPTION
1    foo    very nice

TBL_2

ID - PRICE - CATEGORY - QUANTITY
1     10        a          5

如果我要设置这样的PDO实例....

<?php 
  $handler = new PDO("XXXX;XXXXX","XXX","XXX");

  $query = $handler->query('SELECT * FROM TBL_1');
  while($r = $query->fetch(PDO::FETCH_OBJ)) {

    echo $r->id;       
    echo $r->name;
    echo $r->description;

    //echo $r->price;
    //echo $r->category;
    //echo $r->quantity;
  }

我如何访问pricecategoryquantity,其中两个表中的ID相互相等?

例如,它会像这样出现。

1 foo very nice 10 a 5

3 个答案:

答案 0 :(得分:1)

假设ID列包含相同的值(即因为值代表同一个实体而存在外键const),您将要执行一个INNER JOIN的查询柱。默认情况下为INNER JOIN,如果任一表中不存在请求的值(例如WHERE 'ID' = 3子句),则不会返回任何结果。请尝试以下方法:

SELECT *
FROM `TBL_1` AS `t1`
INNER JOIN `TBL_2` AS `t2` ON `t1`.`ID` = `t2`.`ID`;

答案 1 :(得分:1)

您可以使用JOIN

SELECT name, description, price, category, quantity
FROM TBL_1
JOIN TBL_2
USING (id)

希望它有所帮助。

答案 2 :(得分:1)

您只需在桌子上INNER JOIN执行id相等的每张桌子。

SELECT * FROM TBL_1 INNER JOIN TBL_2 ON TBL_1.ID=TBL_2.ID;