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_id
association 获取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加入问题的主要内容,如果未能解决你的问题,请参考以下文章