【问题标题】:PHP - MYSQL: How to retrieve column information using AliasPHP - MYSQL:如何使用别名检索列信息
【发布时间】:2014-03-11 11:36:43
【问题描述】:

我有一个用于电子邮件营销活动的 PHP 系统。我需要创建一个页面,显示用户根据他/她的电子邮件地址点击的所有标题。

wysylki_reakcje 表存储客户的电子邮件地址、电子邮件活动的唯一 ID (*id_wysylki*) 和链接 ID (*id_link*)。

http://s28.postimg.org/a2vx45uj1/table_wysylki_reakcje.jpg

名为 wysylki_l​​inki 的第二个表存储我需要从列 *nazwa_linku* 检索的信息。

http://s17.postimg.org/wa655h3gv/table_wysylki_linki.jpg

两个表的关系是列*id_wysylki*和*id_link*

到目前为止我的代码(我的查询目前无法正常工作)

$sql2 = "SELECT id_link,id_wysylki,email,data_godz,nazwa_linku 
FROM wysylki_reakcje AS T1, wysylki_linki AS T3  
WHERE (T1.id_link=T3.nazwa_linku)  
AND email='client_email@company.com'" ;

if ($res = $mysqli->query($sql2)) {
    echo "<table\n";    
    echo "<tbody>\n";
    echo "<tr>\n";
    /* fetch object array */
    while ($row = $res->fetch_row()) {
        printf("<td>%s</td>", $row['nazwa_linku']);
    }

    /* free result set */
    $result->close();
}
echo "</tr>\n";
echo "</tbody>\n";
echo "<table>\n";

【问题讨论】:

  • 运行查询时会发生什么?如果出现错误数据,两个表中的一些示例数据将帮助我们诊断问题。
  • 查询错误 - 没有加入!
  • 我无法理解您的表定义!
  • 当我运行查询时,我只得到空白屏幕

标签: php mysql database


【解决方案1】:

您的查询应如下所示:

SELECT 
T1.id_link,
T1.id_wysylki,
T1.email,
T1.data_godz,
T3.nazwa_linku FROM wysylki_reakcje AS T1
   inner join wysylki_linki AS T3 
   on T1.id_wysylki = T3.id_wysylki  
WHERE T1.id_link=T3.nazwa_linku
   AND T3.email='client_email@company.com';

但是您的 wysylki_l​​inki.id_wysylki 列上需要一些键来引用 wysylki_reakcje.id_wysylki
连接的语法示例:强>

SELECT tab1.col1, tab2.col1
FROM `tab1`
INNER JOIN `tab2` on tab1.col1 = tab2.col2;

还有一件事 - 检查此链接以了解更多关于加入 http://www.sitepoint.com/understanding-sql-joins-mysql-database/

【讨论】:

    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多