LIMIT只有查询中的连接?

时间:2015-05-13 14:13:15

标签: php mysql join

好的,所以我想在页面上显示一些产品。 但我也需要显示他们的图像。要做到这一点,我需要加入我的" produkter"我的" billeder"表。 - 但是当我使用连接运行查询来获取图像时,它会显示产品的次数,因为它有一个图像。

这是我的联接。

$query = "
SELECT p.p_id
     , p.vare_nr
     , p.produkt_navn
     , p.beskrivelse
     , p.forhandler_pris
     , p.kunde_pris
     , p.kategori
     , p.teknisk_info
     , p.hmi_link
     , p.datablad
     , p.public
     , b.b_id
     , b.navn
  FROM produkter p
  JOIN billeder b
    ON p.p_id = b.p_id
 WHERE p.kategori = 'leje'
";

但正如你在这里看到的那样 join

产品现在显示5次,然后再转到下一个产品。 有没有办法只限制JOIN部分只抓取它在产品数据库中找到的第一个图像?

这是我的php代码:

$query = "SELECT produkter.p_id, produkter.vare_nr, produkter.produkt_navn, produkter.beskrivelse, produkter.forhandler_pris, produkter.kunde_pris, produkter.kategori, produkter.teknisk_info,         produkter.hmi_link, produkter.datablad, produkter.public, billeder.b_id, billeder.p_id, billeder.navn
        FROM produkter
        INNER JOIN billeder
        ON produkter.p_id=billeder.p_id
        WHERE produkter.kategori='leje'";
        if($result = $db->query($query)) {
            $num_rows = $result->num_rows;
            if($num_rows == 0) {
                echo "Der er endnu ikke nogle produkter.";
            } else {
                while($row = mysqli_fetch_array($result))
                {
                    echo "


                    <div class='cat_travel col-xs-12 col-sm-6 col-md-4 col-lg-4'>
                         <div class='portfolio_item'> <a href='lejer.php?page=".$row['p_id']."' data-path-hover='M 180,190 0,158 0,0 180,0 z'>

                             <figure style='background-image:url(../images/p-img/".$row['navn'].")'>


                                   <svg viewBox='0 0 180 320' preserveAspectRatio='none'>
                                        <path d='M 180,0 0,0 0,0 180,0 z'/>
                                   </svg>
                                   <figcaption>
                                        <p>Description of the project dapibus, tellus ac cursus commodo, mauesris condime ntum nibh, ut fermentum....</p>
                                        <div class='view_button'>View</div>
                                   </figcaption>
                              </figure>
                              </a>
                              <div class='portfolio_description'>
                                   <h3><a href='lejer.php?page=".$row['p_id']."'>".$row['produkt_navn']."</a></h3>
                              </div>
                         </div>
                    </div>


                    ";
                }
            }
            mysqli_free_result($result);
        }

1 个答案:

答案 0 :(得分:0)

您需要GROUP BY子句。您可能希望对produkter.p_id进行分组,并使用聚合函数MIN()

query = "
SELECT p.p_id
     , p.vare_nr
     , p.produkt_navn
     , p.beskrivelse
     , p.forhandler_pris
     , p.kunde_pris
     , p.kategori
     , p.teknisk_info
     , p.hmi_link
     , p.datablad
     , p.public
     , MIN(b.b_id)
     , b.navn
  FROM produkter p
  JOIN billeder b
    ON p.p_id = b.p_id
 WHERE p.kategori = 'leje'
 GROUP BY p.p_id
";