首页 > 解决方案 > 一个 Json 对象中的 MySQL 查询

问题描述

目标是为 Javascript XMLHttpRequest 返回一个 json 对象。

返回的对象将是(示例):

[{"id": "6", "name": "Roger Coleman","start": "1612738800000", "end": "1613257200000", "color": "#FF0000"}, {"id": "7", "name": "Joe Jackson","start": "1615417200000", "end": "1618178399000", "color": "#0000FF"}]

我面临的问题如下:“颜色”值来自另一个表。所以我需要启动第一个查询:

SELECT id, start_date, end_date, name FROM table1 WHERE category='$category'

对于每行中返回的每个名称值,我需要启动另一个查询以从另一个表中获取颜色:

SELECT color from table2 WHERE name='$name'

如何“合并”这两个查询的结果,以便可以将它以一个 json 对象的形式返回给 XMLHttpRequest?

标签: phpmysql

解决方案


要解决这个问题,您可以使用JOIN子句。连接子句基于一个公共列组合来自两个或多个表的行,在您的情况下是该name列。

解决您的问题的 SQL 是:

    SELECT id, start_date, end_date, table1.name AS name, color 
    FROM table1
    JOIN table2 ON table1.name = table2.name
    WHERE category = "$category"

请注意,在我使用的 SELECT 子句中,table1.name AS name因为该列name在两个表中都存在,并且会生成与该列的重复性相关的错误name


推荐阅读