我试图加入5个不同的表。他们每个人都有一个Mysql加入多个表
名称列,ID列和实验柱
除此之外,没有什么完全所有这些是一样的。
SELECT name FROM `weapons`,`arrows`,`trees`,`ores`,`bars` ORDER BY exp DESC
是我能想出的,它说名称是不明确的。谢谢!
这就像我试图如果你有你需要的表名添加到列名称相同的列组合成一个大名单
我试图加入5个不同的表。他们每个人都有一个Mysql加入多个表
名称列,ID列和实验柱
除此之外,没有什么完全所有这些是一样的。
SELECT name FROM `weapons`,`arrows`,`trees`,`ores`,`bars` ORDER BY exp DESC
是我能想出的,它说名称是不明确的。谢谢!
这就像我试图如果你有你需要的表名添加到列名称相同的列组合成一个大名单
您可能需要使用一个表前缀标识表从哪个,要检索name
例如如下:
SELECT w.name FROM weapons w, arrows a, trees t, ores o, bars b ORDER BY exp DESC
我想你也错过了加入条件。
您的查询应该是这样的:
SELECT w.name
FROM weapons w JOIN arrows a
ON w.id = a.id
JOIN trees t
ON a.id = t.id
JOIN ores o
ON t.id = o.id
JOIN bars b
ON o.id = b.id
ORDER BY exp DESC;
或者,如果你想为union --> combine rows from all tables
则:
SELECT name
FROM weapons
UNION ALL
SELECT name
FROM arrows
UNION ALL
SELECT name
FROM trees
UNION ALL
SELECT name
FROM ores
UNION ALL
SELECT name
FROM bars;
5个单独的用户表。您还可以为表使用别名,并缩短查询。
如果您想选择的weapons
和arrows
表的name
列别
SELECT w.name, a.name
FROM `weapons` as w, `arrows` as a,`trees` as t,`ores` ass o,`bars` as b
ORDER BY exp DESC
没有一个表具有相同的名称。 –
我会在列名上放置一个别名,这样你就知道它来自'weapon.name作为WeaponsName,arrows.name作为ArrowsName'的表是什么表。 – Taryn
@AlanBowen:但是列具有相同的名称。你需要从哪个表中告诉数据库引擎你想要哪个'name'列。 –
如果你正在寻找一个大名单,你想联盟表格,而不是JOIN。
SELECT * FROM weapons
UNION
SELECT * FROM arrows
UNION
SELECT * FROM trees
UNION
SELECT * FROM ores
UNION
SELECT * FROM bars;
如果你只是想的名字,SELECT name
代替SELECT *
如果你想要一个大名单,你可以使用以下命令:
select name, id, exp, 'weapons' as TableFrom
from weapons
union all
select name, id, exp, 'arrows' as TableFrom
from arrows
union all
select name, id, exp, 'trees' as TableFrom
from trees
union all
select name, id, exp, 'ores' as TableFrom
from ores
union all
select name, id, exp, 'bars' as TableFrom
from bars
order by 3
我加了最后一栏,以帮助确定数据来自哪个表。如果你不想要,那么你可以放弃它。
你确定你不想要一个联盟而不是JOIN? – jmoerdyk
我不知道我需要什么。哈.... –
@AlanBowen请张贴一些样本数据,然后期望的结果,然后你会得到一个答案,可以产生结果。 – Taryn