php - 一个 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?
解决方案
要解决这个问题,您可以使用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
。
推荐阅读
- angular - 是否可以使用多个 ::ng-deep 标识符在深度嵌套的组件上应用样式?
- f# - F#如何使用匿名类型代替完整类型的变量
- python - 在python中连接wifi的最简单方法
- pandas-datareader - '使用 pandas-datareader 时出错:没有使用 'YahooDailyReader' 获取数据
- html - 在 Cpanel 中安装新字体
- assembly - MIPS 32 显示错误值并重复打印语句
- node.js - 如何在连接范围之外引用 socket.id 或以可以在连接范围之外引用的方式存储它?
- electron - 在具有上下文隔离的渲染器中使用电子保存对话框
- c# - 总偶数数组
- java - 在java中创建类对象而不使用类名方法的替代方法