2011-08-26 54 views
0

我搜索了谷歌2小时,没有运气,我觉得很简单。我有4个表,我可以结合在一起的第一个4下面,我有所有表中的所有行。我想弄清楚如何添加1个额外的FullName列,以便所有结果都显示来自基于b的每行中的table5的FullName,这在所有其他表中都是如此。我希望这对某人有意义。5桌上的Mysql查询

SELECT a, b, NULL AS Name FROM table1 
union SELECT a, b, NULL AS Name FROM table2 
union SELECT a, b, NULL AS Name FROM table3 
union SELECT a, b, NULL AS Name FROM table4 
union SELECT NULL AS a, b, FullName FROM table5 where 

..... B在以前的4个select语句

回答

1
SELECT unions.*, tb5.FullName 
FROM (
SELECT a, b FROM table1 
union SELECT a, b FROM table2 
union SELECT a, b FROM table3 
union SELECT a, b FROM table4 
union SELECT a, b FROM table5 
) AS unions 
JOIN table5 AS tb5 ON unions.b = tb5.b 

可能工作等于任何B-?

编辑:更新...

+0

谢谢,它的工作原理,但返回额外的行。不知道为什么。我认为这可能是因为表5中有一些重复的值,我无法控制,因为它不是我的数据。我试图通过unions.b将查询添加到查询结尾,但返回的行数太少。任何想法... – user913343

+0

你可以尝试“独特”,但理想情况下,如果可能的话,你应该改变你的表格结构,听起来像是真的搞砸了。 – Matthew

+0

是的,我尝试了,它是搞砸了,但我是其他人计划不周的受害者。谢谢您的帮助。 – user913343