我有两张桌子
表格语言
桌面版本
两个表中,id都是主键
版本表中的 language_id 是语言表的外键。
我正在运行内部连接,下面是我的查询。
$table_name = $wpdb->prefix . 'versions';
$languages_table = $wpdb->prefix.'languages';
$sql = "SELECT * FROM $table_name INNER JOIN $languages_table ON $table_name.language_id = $languages_table.id";
$rows = $wpdb->get_results($sql);
实际输出
这输出
{
"success": true,
"data": {
"rows": [
{
"id": "40",
"abbreviation": "kjv",
"name": "English",
"language_id": "40",
"code": "en",
"native_name": "English"
}
]
}
}
versions 表的 id 和 name 被 languages id 和 name 覆盖。我知道表列应该定义为具有唯一的列名。
预期输出
我可以从带有单独属性的 sql 中获取输出吗,如下所示。
{
"success": true,
"data": {
"rows": [
{
"id": "1",
"abbreviation": "kjv",
"name":"Kings James Vesion",
"language_id": "40",
"language": {
"id":"40",
"name": "English",
"code": "en",
"native_name": "English"
}
}
]
}
}
或者我应该单独运行一个循环并获取每一行。
我会去掉“SELECT *”。除了这个问题之外,当您稍后更改表结构时,它可能会引入错误。您可以在真正需要时格式化代码中的数据。