繁体   English   中英

左联接MySql / PHP

[英]Left join MySql/PHP

虽然根据不同表中的ID和标签填充表,但显然必须有一种更好的方法来使用更少的代码和更直接的方法使用LEFT JOIN来实现相同的结果,但是我在尝试弄清楚其是否可行后感到困惑实际上能够达到预期的结果。

我认为在这种情况下可以使用LEFT JOIN是否正确?

互相引用两个表,其中一个列出与另一个表相关的ID,而另一个表为每个引用分配了标题?

我清楚地知道,如果各行那里有独立的信息LEFT JOIN是合适的,但在那里孤单在这种情况下,只有几个IDS为许多行引用,我只是自己还不怎么我能得到它的工作...点击

我目前在PHP / MySQL中达到预期结果的方式

$itemid = $row['item_id'];

$secid = mysql_query(" SELECT * FROM item_groups WHERE item_id='$itemid' ");
while ($secidrow = mysql_fetch_assoc($secid)) {
    //echo $secidrow["section_id"]; //testing
    $id = $secidrow["section_id"];

    $secnameget = mysql_query(" SELECT * FROM items_section_list WHERE item_sec_id='$id' ");
    while ($secname = mysql_fetch_assoc($secnameget)) {
        echo $secname["section_name"];  
    }
}

数据示例项目组:drink:food:shelf

物料清单itemId,groupId

组列表groupId,groupTitle

这样的想法是将数据输出到表而不是输出“项目和ID号”来代替标题实际出现的ID号。

我已经达到了期望的结果,但是我一直对寻求更好的方法来达到期望的结果感兴趣。

如果我已经正确地解密了您的代码,则您应该能够使用以下查询同时获取两个值。

$itemid = $row['item_id'];

$secid = mysql_query("
    SELECT * 
    FROM item_groups 
    LEFT JOIN items_section_list
      ON items_section_list.item_sec_id = item_groups.section_id
    WHERE item_id='$itemid'
");

while ($secidrow = mysql_fetch_assoc($secid)) {
    //$id = $secidrow["section_id"];
    echo $secidrow["section_name"];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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