如何从mysql中的三个表中取一些列

时间:2012-07-18 12:40:51

标签: mysql multiple-tables

我有三张表:

表1:

|A|B|C|D|

表2:

|A|E|F|G|

表3:

|G|H|

我需要的结果是:

|A|B|C|D|H|

最初我只检查前两个表格,来自table1所有行以及table2G满足条件table1.A = table2.A的行<{1}}

类似的东西:

SELECT `table1`.*,`table2`.`G` FROM `table1` INNER JOIN `table2` WHERE `table1`.`A`=`table2`.`A`

我现在的问题是从H使用满足旧条件的键值table3G列。我希望我的问题有点清楚..有人可以帮助我吗?谢谢!

4 个答案:

答案 0 :(得分:2)

SELECT `table1`.*,`table2`.`G`,`table3`.`H`
FROM `table1` 
INNER JOIN `table2` ON `table1`.`A`=`table2`.`A`
INNER JOIN `table3` ON `table2`.`G`=`table3`.`G`

答案 1 :(得分:0)

这是使用隐式内连接执行此操作的最简单方法。

SELECT T1.A, T1.B, T1.C, T1.D, T3.H 
FROM `table1` T1, `table2` T2, `table3` T3 
WHERE T1.A = T2.A AND T2.G = T3.G

答案 2 :(得分:0)

试试这个:

SELECT
  `t1`.*,
  `t2`.`G`,
  `t3`.`H`
FROM
  `table1` AS `t1`
INNER JOIN
  `table2` AS `t2`
  ON `t1`.`id` = `t2`.`t1_id`
INNER JOIN
  `table3` AS `t3`
  ON `t1`.`id` = `t2`.`t2_id` (or join with table 2 I dont know)
WHERE
  `t1`.`A`=`t2`.`A`

答案 3 :(得分:0)

从table1,table2,table3中选择table1.A,table1.B,table1.C,table1.D,table3.H table1.A = table2.A AND table2.G = table3.G