gpt4 book ai didi

php - 正确连接 3 个表

转载 作者:行者123 更新时间:2023-11-29 03:42:17 25 4
gpt4 key购买 nike

尝试自己修复现有代码的错误,而不是我自己。此代码的错误是,除非相应的 id 在第二个表中有项目,否则它根本不会显示在输出中。在第一个表(邮件)中,我有多个条目他们在输出中被过滤掉确实显示正确的邮件总数......只是不会输出它,除非邮件在第二个表中有项目。我尝试了另一个使用差异连接的查询

SELECT 
id,
messageType,
sender,
mail.receiver,
subject,
body,
has_items,
money,
cod,
checked
FROM
mail
LEFT OUTER JOIN mail_items
ON id = mail_id
LEFT JOIN item_instance
ON item_guid = guid

问题是……我得到错误:您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在“LIMIT 1”附近使用的正确语法

我该怎么做才能使邮件表和 mail_items 表都连接起来,同时它从第 3 个表正确获取项目 guid,并输出邮件表条目,即使 mail_items 表中没有该邮件的项目也是如此。

//==========================$_GET and SECURE=================================
$start = (isset($_GET['start'])) ? $sqlc->quote_smart($_GET['start']) : 0;
if (is_numeric($start));
else
$start = 0;

$order_by = (isset($_GET['order_by'])) ? $sqlc->quote_smart($_GET['order_by']) : 'id';
if (preg_match('/^[_[:lower:]]{1,12}$/', $order_by));
else
$order_by = 'id';

$dir = (isset($_GET['dir'])) ? $sqlc->quote_smart($_GET['dir']) : 1;
if (preg_match('/^[01]{1}$/', $dir));
else
$dir = 1;

$order_dir = ($dir) ? 'ASC' : 'DESC';
$dir = ($dir) ? 0 : 1;
//==========================$_GET and SECURE end=============================

$query = $sql->query("SELECT a.id, a.messageType, a.sender, a.receiver, a.subject, a.body, a.has_items, a.money, a.cod, a.checked, b.item_guid, c.itemEntry
FROM mail a INNER JOIN mail_items b ON a.id = b.mail_id LEFT JOIN item_instance c ON b.item_guid = c.guid ORDER BY $order_by $order_dir LIMIT $start, $itemperpage");
$total_found = $sql->num_rows($query);
$this_page = $sql->num_rows($query);
$query_1 = $sql->query("SELECT count(*) FROM `mail`");
$all_record = $sql->result($query_1,0);

最佳答案

我不是 SQL 高手,但我认为

FROM mail a INNER JOIN mail_items b 

需要 AS 关键字来分配别名:

FROM mail AS a INNER JOIN mail_items AS b 

关于php - 正确连接 3 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12336853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com