[英]joining two tables with same id and same name of columns but different values
我正在努力做我刚才说的话。 我有两个联接表。 它们由相同的ID组成。 但是有两列具有相同的名称,我只想输出其中一列。
$query= "SELECT *
FROM users
INNER JOIN bookings ON users.username = bookings.personal
JOIN products ON bookings.productid = products.productid
WHERE users.id = $id
";
$selectproductname = $db->prepare($selectuseremailquery);
$selectproductname ->execute(array());
foreach($selectproductname as $index => $rs) :
it gives me something like this table:
-id -----id----products----products------
- -
-1 1 a cup coffee cup -
-2 2 a pen a purple pen -
-----------------------------------------
我想输出咖啡杯,但是有两列具有相同的名称。 如何输出?
这不起作用:
<td><div> <?php echo $rs['products.productname']; ?> </div> </td>
我必须选择所有带有*的内容。
由于您要询问的确切原因,在生产软件中,尤其是在php中,使用SELECT *
通常被认为是有害的 。
在php中,有时将结果集加载到关联数组中。 这将导致除了每组重复的列名称中的一组以外的所有数据消失。
你想用
SELECT products.id,
products.productname,
products.id AS product_id,
bookings.*,
etc., etc.
枚举结果集中所需的列。 (请注意,我正在猜测您的列名)。
我知道您的问题说您必须使用SELECT *
。 我怀疑那是真的。 如果是这样,那可能是一个不知道他们在说什么的人强加的要求。 (愚蠢的教授把戏浮现在脑海。)
如果必须使用SELECT *
,则需要使用结果集元数据来检查每一列的元数据,并找出需要提取的列。 getColumnMeta()
做到这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.