mysql INNER JOIN SQL with Seperate Property

yhived7q  于 2023-05-05  发布在  Mysql
关注(0)|答案(1)|浏览(84)

我有两张table

表格语言

表格版本

在这两个表中,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"
                }
            ]
        }
    }

版本表的ID和名称被语言ID和名称覆盖。我理解表列应该定义为具有唯一列名。

预期输出

我可以得到一个输出从sql与separate属性如下所示。

{
        "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"
                    }
                }
            ]
        }
    }

或者我应该单独运行一个循环并为每一行获取。

cgh8pdjw

cgh8pdjw1#

我将删除“SELECT *"。除了这个问题之外,当您稍后更改表结构时,它可能会引入错误。你可以在真正需要的时候格式化代码中的数据。

相关问题