具有单独属性的 INNER JOIN sql

问题描述 投票:0回答:1

我有两张桌子

表格语言

桌面版本

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

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

mysql inner-join
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.