mysql将另外两列加入查询

ak85

我有下面的SQL。

    CREATE TABLE states (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255)
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;

    CREATE TABLE teams (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255),
        stateid INT
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;

    CREATE TABLE debates (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        debatedate DATE NOT NULL,
        hostid INT,
        visitid INT,
        winnerid INT
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;

    INSERT INTO states (id, name) VALUES
    (1,'New York'),
    (2,'Pennsylvania'),
    (3,'Ohio');

    INSERT INTO teams (id, name, stateid) VALUES
    (1,'team one',1),
    (2,'team two',2),
    (3,'team three',2),
    (4,'team four',1),
    (5,'team five',2),
    (6,'team six',3);

    INSERT INTO debates (id, debatedate,hostid, visitid, winnerid ) VALUES
    (1,'2012-01-11', 1,2,1),
    (2,'2012-01-11', 3,4,4),
    (3,'2012-02-11', 5,6,5),
    (4,'2012-02-11', 1,4,1),
    (5,'2012-02-11', 2,5,5),
    (6,'2012-02-11', 3,6,3),
    (7,'2012-03-11', 6,1,1),
    (8,'2012-03-11', 5,2,5),
    (9,'2012-03-11', 3,4,4);

    SELECT deb.id, t1.name as Visitor , t2.name as Host
    FROM debates AS deb
    INNER JOIN teams t1 ON t1.id = deb.visitid
    INNER JOIN teams t2 ON t2.id = deb.hostid
    GROUP BY id
    LIMIT 1 --Just have limit 1 to save space in the question

哪个返回

    -----------------------------
    |ID |VISITOR    |HOST       |
    |1  |team two   |team one   |
    -----------------------------

我也想返回辩论所处的状态。对此的答案将是hostid的状态。在teams表中有一列stateid,但是我在使用它时遇到了麻烦。

我试图添加联接

INNER JOIN teams t3 ON t3.id = states.id

但是我得到了错误

Unknown column 'states.id' in 'on clause'

我将如何获取此信息。

我想回来

    -----------------------------------------
    |ID |VISITOR    |HOST       |State      |
    |1  |team two   |team one   |New York   |
    -----------------------------------------

看小提琴

吉姆·加里森

你要

SELECT deb.id, t1.name as Visitor , t2.name as Host, s.name
FROM debates AS deb
INNER JOIN teams t1 ON t1.id = deb.visitid
INNER JOIN teams t2 ON t2.id = deb.hostid
inner join states s on t2.stateid = s.id
GROUP BY id    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将更新/加入查询

来自分类Dev

PHP的MySQL查询加入两个表

来自分类Dev

MySQL-加入两个查询(UNION?)

来自分类Dev

MySQL查询加入条件

来自分类Dev

mysql中的子查询将一列用于两个不同的结果

来自分类Dev

如果另外两列匹配则减去两列

来自分类Dev

MySQL将多个查询结果加入1个结果集

来自分类Dev

MySql:如何通过两列之一加入

来自分类Dev

如何制作将两列与另外两列进行比较的公式?

来自分类Dev

MySQL-加入两个查询(UNION?)

来自分类Dev

MySQL查询(加入)

来自分类Dev

我确实想在列中加入另外两个的区别,我该怎么办?

来自分类Dev

MySQL查询-加入

来自分类Dev

查询左加入mysql

来自分类Dev

如果另外两列匹配,则减去两列

来自分类Dev

MySQL将多个查询结果加入1个结果集中

来自分类Dev

列字段加入Mysql查询

来自分类Dev

将两列合并为新列,并在同一mysql查询中使用该列

来自分类Dev

在MySQL中加入两列

来自分类Dev

有两列的MYSQL子查询

来自分类Dev

mysql查询两列无重复

来自分类Dev

mysql查询加入多表

来自分类Dev

在 MySQL 中加入两个查询以将一个查询的结果映射到另一个

来自分类Dev

如何在复杂查询中使用 linq 将一个表连接到另外两个表?

来自分类Dev

将子查询作为两列执行

来自分类Dev

mysql查询加入未加入

来自分类Dev

mysql 使用 where in 条件选择多个 avg 列并加入查询

来自分类Dev

按一列分组,但将另外两列相加并计算第三列

来自分类Dev

将两个MYSQL查询列结果合二为一在ORDER BY中使用