MySQL查询帮助选择连接

MySQL查询帮助选择连接,mysql,select,join,Mysql,Select,Join,我有一些桌子。每个表中都有一个字段id(int)。每个表中可以有多条id相同的记录。例如: id1 val1 id1 val2 id1 val3 id1 val4 id1 val5 id1 val6 我需要巫婆给我的选择查询 val1 val2 val3 val4 val5 val6 我试过了 SELECT * FROM table1 INNER JOIN table2 ON table1.ban_id = table2.ban_id INNER JOIN table3 ON table1

我有一些桌子。每个表中都有一个字段id(int)。每个表中可以有多条id相同的记录。例如:

id1 val1 id1 val2 id1 val3
id1 val4 id1 val5 id1 val6
我需要巫婆给我的选择查询

val1 val2 val3
val4 val5 val6
我试过了

SELECT * FROM  table1
INNER JOIN table2 ON table1.ban_id = table2.ban_id
INNER JOIN table3 ON table1.ban_id = table3.ban_id
INNER JOIN table4 ON table1.ban_id = table4.ban_id
INNER JOIN table5 ON table1.ban_id = table5.ban_id
INNER JOIN table6 ON table1.ban_id = table6.ban_id
据我所知,它给了我所有可能的价值观排列。

更新1

让我告诉你更多的信息。我正在编写一个应用程序,其中用户可能会以多种方式被禁止,例如nick ip guid(一些类似guid的id)
也会在数据库中存储此禁止的原因。因此,存在这样一种情况:有一条记录的guid为ip nick,但有多个原因或多个nick响应相同的id。
-以下是表的结构

您目前得到了什么?如果您提供一些调试信息,将更容易提供帮助

我想您可能对模棱两可的列名有问题。试一试

SELECT 
`table1`.`id1` AS `t1_id1`, 
`table2`.`id1` AS `t2_id1`, 
`table3`.`id1` AS `t3_id1`, 
`table4`.`id1` AS `t4_id1`, 
`table5`.`id1` AS `t5_id1`, 
`table6`.`id1` AS `t6_id1`
FROM table1 
INNER JOIN table2 ON table1.ban_id=table2.ban_id
INNER JOIN table3 ON table1.ban_id=table3.ban_id
INNER JOIN table4 ON table1.ban_id=table4.ban_id
INNER JOIN table5 ON table1.ban_id=table5.ban_id
INNER JOIN table6 ON table1.ban_id=table6.ban_id

你现在得到了什么?如果您提供一些调试信息,将更容易提供帮助

我想您可能对模棱两可的列名有问题。试一试

SELECT 
`table1`.`id1` AS `t1_id1`, 
`table2`.`id1` AS `t2_id1`, 
`table3`.`id1` AS `t3_id1`, 
`table4`.`id1` AS `t4_id1`, 
`table5`.`id1` AS `t5_id1`, 
`table6`.`id1` AS `t6_id1`
FROM table1 
INNER JOIN table2 ON table1.ban_id=table2.ban_id
INNER JOIN table3 ON table1.ban_id=table3.ban_id
INNER JOIN table4 ON table1.ban_id=table4.ban_id
INNER JOIN table5 ON table1.ban_id=table5.ban_id
INNER JOIN table6 ON table1.ban_id=table6.ban_id

糟糕的表规范化,每一行应该有自己的ID、值,而不是每一行多个。。。除非那只是贴出的问题格式不好。这让我进入下一部分。。。在得到可能的值后,您是否特别希望将它们汇总成每行3个值?创建这样一个模拟交叉表(每个返回的行结果值为3)有什么特别的原因吗?看起来最好将所有这些放在一个表中。您可以为不需要的详细信息设置空值,例如,如果您禁止IP地址或昵称。连接实际上是用于链接需要存储在单独表中的数据,例如,
“从猫中选择cats.name,fines.title LEFT JOIN fines ON cats.favorite_fine=fines.id”
可能返回
Garfield | Lasagne
糟糕的表规范化,每一行应该有自己的id、值,而不是每一行的多个id。。。除非那只是贴出的问题格式不好。这让我进入下一部分。。。在得到可能的值后,您是否特别希望将它们汇总成每行3个值?创建这样一个模拟交叉表(每个返回的行结果值为3)有什么特别的原因吗?看起来最好将所有这些放在一个表中。您可以为不需要的详细信息设置空值,例如,如果您禁止IP地址或昵称。连接实际上是用于链接需要存储在单独表中的数据,例如,
“从猫中选择cats.name、fines.title LEFT JOIN fines ON cats.favorite_fine=fines.id”
可能返回
加菲猫|千层面