假设我必须使用像这样的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;
}
我如何访问price
,category
,quantity
,其中两个表中的ID
相互相等?
例如,它会像这样出现。
1 foo very nice 10 a 5
答案 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;