Mysql 将多个结果合并为列

Mysql 将多个结果合并为列,mysql,sql,sqlite,Mysql,Sql,Sqlite,我想使用sql查询显示“佛罗里达”大学的“学费”和“费用” 我使用下面的代码首先查询学费,然后结合第二个查询查询费用。然而,我没有得到我期望的结果 预期结果如下: > School | Tuition | Fees > -------------------------------------------- > School 1 | 2000 | 50 > School 2 |

我想使用sql查询显示“佛罗里达”大学的“学费”和“费用”

我使用下面的代码首先查询学费,然后结合第二个查询查询费用。然而,我没有得到我期望的结果

预期结果如下:

>    School      |     Tuition     |   Fees
> --------------------------------------------
>   School 1     |      2000       |    50
>   School 2     |      1000       |    80
但我得到了以下结果:

>    School      |     Tuition     |   Fees
> --------------------------------------------
>   School 1     |      2000       |    50
>   School 1     |      1000       |    50
>   School 2     |      2000       |    80
>   School 2     |      1000       |    80
我对WordPress数据库使用了以下查询。“学费”和“费用”的所有值都包含在名为“实体\字段\编号”的表中。这些值位于名为“值”的列中。学费和学费由一个名为“字段名称”的列区分。“实体id”是分配给学校的id号

表“实体\字段\编号”

下面是我使用的查询

SELECT *
    FROM
       (SELECT field_number.`value` as tuition,
           posts.`post_title` as school
    FROM field_number
      INNER JOIN posts
         ON posts.`post_type` = 'school_dir'
         AND field_number.`entity_id` = posts.`ID`
      INNER JOIN field_location
         ON field_location.`province` LIKE '%florida%'
         AND posts.`ID` = field_location.`entity_id`
         AND field_number.`field_name` = 'tuition') tuition,

       (SELECT field_number.`value` as fees,
           posts.`post_title` as school
    FROM field_number
      INNER JOIN posts
         ON posts.`post_type` = 'school_dir'
         AND field_number.`entity_id` = posts.`ID`
      INNER JOIN field_location
         ON field_location.`province` LIKE '%florida%'
         AND posts.`ID` = field_location.`entity_id`
         AND field_number.`field_name` = 'fees') fees

你所做的可以解释为

SELECT
   *
FROM
   (<sql>) tuition,
   (<sql>) fees
交叉联接
从两个表中获取行的每个组合(笛卡尔积)

您真正想要的是一个
内部连接

SELECT
   *
FROM
   (<sql>) tuition
INNER JOIN
   (<sql>) fees
        ON tuition.school = fees.school

你所做的可以解释为

SELECT
   *
FROM
   (<sql>) tuition,
   (<sql>) fees
交叉联接
从两个表中获取行的每个组合(笛卡尔积)

您真正想要的是一个
内部连接

SELECT
   *
FROM
   (<sql>) tuition
INNER JOIN
   (<sql>) fees
        ON tuition.school = fees.school

MySQL SQLite。你到底在使用哪种RDBMS?你不会得到那个结果,你会得到四列…MySQL SQLite。你到底在使用哪种RDBMS?你没有得到那个结果,你得到了四列。。。
SELECT
    posts.`post_title` as school,
    fees.`value`       as fees,
    tuition.`value`    as tuition
FROM
    field_location
INNER JOIN
    posts
        ON  posts.`ID` = field_location.`entity_id`
INNER JOIN
    field_number   AS fees
        ON  fees.`entity_id`  = posts.`ID`
        AND fees.`field_name` = 'fees'
INNER JOIN
    field_number   AS tuition
        ON  tuition.`entity_id`  = posts.`ID`
        AND tuition.`field_name` = 'tuition'
WHERE
        field_location.`province` LIKE '%florida%'
    AND posts.`post_type` = 'school_dir'