PHP Mysql加入问题

Posted

技术标签:

【中文标题】PHP Mysql加入问题【英文标题】:PHP Mysql Join issue 【发布时间】:2016-02-08 23:26:34 【问题描述】:

我正在使用两个左连接从 3 个表中选择数据。

这一切都有效,直到一个关联值的迭代(我认为,通过消除过程)。

我现在有理由相信 select 语句在 JOIN 处是不正确的,但我看不出是怎么回事。

未按预期运行的联接:

LEFT JOIN
         ae_template_pageTypes t ON t.ae_template_pageTypes_id = tp.ae_template_page_group_id

我在这里尝试通过ae_template_pageTypes_idassociation 获取ae_template_pageTypes_type_label

表格:ae_template_pages

表格:ae_template_pageTypes

表:ae_template_groups

HTML 输出(均显示 html 而不是分别使用连接)

问题 我期望格式部分中有 2 个不同的值,此处显示为 HTML。我找不到发生这种情况的原因。

SELECT

       SELECT tg.ae_template_group_name, tp.ae_template_page_id, tp.ae_template_page_group_id, tp.ae_template_page_title, tp.ae_template_page_type, tp.is_group_index, t.ae_template_pageTypes_id, t.ae_template_pageTypes_type_label
        FROM
          ae_template_pages tp
        LEFT JOIN
          ae_template_pageTypes t ON t.ae_template_pageTypes_id = tp.ae_template_page_group_id
        LEFT JOIN
          ae_template_groups tg ON tg.ae_template_group_id = tp.ae_template_page_group_id
        WHERE tp.ae_template_page_group_id = '$tempGroup_id'

注意:我尝试了所有类型的连接进行测试,但没有找到解决方案。

PHP

   foreach ($template_pages as $key => $value) 
        ?>
            <li class="dd-item dd3-item" data-id="<? echo $template_pages[$key]['ae_template_page_id']; ?>">
                <div class="dd-handle dd3-handle"></div>
                <div class="dd3-content ae_template_page" data-template_page_name='<? echo $template_pages[$key]['ae_template_page_title']; ?>' data-template_page_id='<? echo $template_pages[$key]['ae_template_page_id']; ?>'><? echo $template_pages[$key]['ae_template_page_title']; ?>
                    <span style='float: right;margin-top: -3px;'>
                        <div style="" class="btn-group">
                            <span class="btn-info btn-xs dropdown-toggle" data-toggle="dropdown" title="Click to change file type" type="button"><? echo $template_pages[$key]['ae_template_pageTypes_type_label']; ?></span>
                                <ul role="menu" class="dropdown-menu" data-page_id='<? echo $template_pages[$key]['ae_template_page_id']; ?>'>
                                    <li><a href="#">JS</a></li>
                                    <li><a href="#">HTML</a></li>
                                    <li><a href="#">CSS</a></li>
                                </ul>
                            <span class="btn-info btn-xs" title="This file belongs to Template Group: <? echo $template_pages[$key]['ae_template_group_name']; ?>" type="button"><? echo $template_pages[$key]['ae_template_group_name']; ?></span>
                            <?
                            if ($template_pages[$key]['is_group_index'] == 1) 
                                ?>
                                <span class="btn-success btn-xs" title="This is the default file for this group" type="button">Group index</span>
                                <?
                            
                            ?>




                        </div>
                    </span>
                </div>
            </li>
        <?
        

使用上述语句将 $tempGroupId 设置为 1 的 SQL 工作台输出

【问题讨论】:

【参考方案1】:

为了这个和将来尝试重组你的 sql 以使其更清晰,例如:

select * from (
    (select * from table_a) tbla
    left join
    (select * from table_b) tblb
    on tbla.commoncolname=tblb.commoncolname
)

先在数据库工具上试试这个(例如 SQL Workbench),然后转到 php 检索的内容,以此类推到 html

【讨论】:

在工作台中运行并在问题中更新。确认加入不正确。我不知道为什么它是不正确的。上面也注明了。谢谢。

以上是关于PHP Mysql加入问题的主要内容,如果未能解决你的问题,请参考以下文章

php和mysql如何加入表[重复]

php mysql加入带有字段名的子数组

linux上将php加入环境变量

PHP 读写数据库出现中文乱码问题

将php和mysql命令加入到环境变量中

脚本太慢,mysql加入?