繁体   English   中英

连接具有相同ID和相同列名但值不同的两个表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM