使用DATE_FORMAT-ted数据显示INNER JOIN-ed数据尚未运行

时间:2013-10-08 02:44:26

标签: php mysql sql mysqli

我正在为客户开发一个工单系统。数据通过管理面板输入,例如ClientCategoryDescription。数据库设置为记录UpdatedCreated信息。

最初,输入了Category(数据库表格为VARCHAR),当查询数据库时,所有信息都会在主页面上正确显示。

查询:

$sql = 'SELECT *,
    DATE_FORMAT(wo_updated,"%m/%d/%Y") AS updated,
    DATE_FORMAT(wo_created, "%m/%d/%Y") AS created
    FROM work_orders
    ORDER BY wo_id ASC';
$result = $conn->query($sql) or die(mysqli_error($conn));
$numRows = $result->num_rows;

这很有效,显示ClientDescriptionCategory以及UpdatedCreated信息,这两个显示为{{1例如。

然后我在管理面板中添加了一个部分,允许输入类别并将其存储在数据库中,以便在输入新的工单时,您可以从预先设定的类别列表中进行选择,以使事情保持平稳并且一致。

这是新查询,没有DATE_FORMAT代码:

10/07/2013

这完美无缺,显示$sql = 'SELECT *, cat_name FROM work_orders INNER JOIN categories ON work_orders.wo_category = categories.cat_id ORDER BY wo_id ASC'; $result = $conn->query($sql) or die(mysqli_error($conn)); $numRows = $result->num_rows; ClientDescriptionCategory现在从Category数据库表调用,现在{{1} })。

但正如您将注意到的那样,我在第二个查询中没有categories - ted代码,因为每次尝试将两者结合都会导致语法错误。我可以做其中一个,但我还不能将显示来自INT表的DATE_FORMAT - ted DATE_FORMATUpdated信息的两个查询结合使用来自Created表格的work_orders信息。

我已尝试过对各种JOIN命令的子查询和各种尝试,但到目前为止,我仍然无法通过MySQLi语法错误。显然,我需要学习一些东西,经过几个小时的试验和错误研究之后,我被困住了。任何帮助解决这个问题的方法都可能非常简单,我们将不胜感激。谢谢!

更新

这是我尝试的一种导致语法错误的方法:

cat_name

进一步更新:

我希望我可以说丢失的逗号之前没有咬过我,丢失的逗号是罪魁祸首!谢谢@SergeyRonin,@ denlau,@ JMS786,你对逗号很满意。还要感谢代码建议,我不知道有谁可以用正确的答案来表达你的意见。

3 个答案:

答案 0 :(得分:2)

SELECT 
    wo.*, 
    c.cat_name,
    DATE_FORMAT(wo.`wo_updated`,"%m/%d/%Y") AS updated,
    DATE_FORMAT(wo.`wo_created`, "%m/%d/%Y") AS created
FROM work_orders wo
INNER JOIN categories c ON wo.`wo_category` = c.`cat_id`
ORDER BY wo.`wo_id` ASC

此外,在您的代码中,您在cat_name之后错过了逗号,因此这也可能是您出错的原因。

答案 1 :(得分:2)

你" cat_name"之后你错过了一个逗号。在第一行。您的查询应如下所示:

    SELECT 
        w.wo_updated as wo_updated,
        w.wo_created as wo_updated,
        c.cat_name as cat_name,
        DATE_FORMAT(w.wo_updated,"%m/%d/%Y") AS updated,
        DATE_FORMAT(w.wo_created, "%m/%d/%Y") AS created
    FROM 
        work_orders w
    INNER JOIN 
        categories c
        ON 
            w.wo_category = c.cat_id
    ORDER BY 
        w.wo_id ASC

好吧,我给了桌子一些较短的名字 - 如果你想使用它,你的电话。 此外,我在SELECT语句中显式调用了字段。这是因为您应该只获得所需的信息。 :)

希望这有帮助。

答案 2 :(得分:1)

你错过cat_name和DATE_FORMAT之间的逗号“,”......