2012-04-03 127 views
1

AS query not workingSELECT值(DESC)的子查询

由于不工作(没有双关语意),你可以在这个截图中看到,当AS位于子查询中的AS语句不改变返回的查询的标题。

图片的右侧是我的exp_tables表。这里的目标是找出玩家在每种特定技能中的水平(所以在我的Java应用程序中,我可以把它放在一个不错的进度条中)。请让我知道,如果我的SQL对于AS有什么问题,或者如果你想真正有用,请告诉我是否有更好的方法,我应该这样做。非常感谢你的帮助。喜欢这个网站;希望我能够很快聪明地帮助别人。

编辑 又忘了上传代码>是遗憾。 <

SELECT 
skill_alchemy_exp, ((SELECT exp_tables.id AS alchemy_lvl FROM exp_tables WHERE skill_alchemy_exp < tradeskills LIMIT 1)-1), 
skill_axes_exp, ((SELECT exp_tables.id AS axes_lvl FROM exp_tables WHERE skill_axes_exp < weapons LIMIT 1)-1), 
skill_baking_exp,((SELECT exp_tables.id AS baking_lvl FROM exp_tables WHERE skill_baking_exp < tradeskills LIMIT 1)-1), 
skill_blacksmithing_exp,((SELECT exp_tables.id AS blacksmithing_lvl FROM exp_tables WHERE skill_blacksmithing_exp < tradeskills LIMIT 1)-1), 
             skill_blocking_exp, skill_blunts_exp, skill_bows_exp, skill_carpentry_exp, skill_cooking_exp, 
             skill_crossbows_exp, skill_daggers_exp, skill_dark_exp, skill_earth_exp, skill_fire_exp, 
             skill_foraging_exp, skill_harvesting_exp, skill_healing_exp, skill_hiding_exp, skill_holy_exp, 
             skill_looting_exp, skill_luck_exp, skill_lumberjacking_exp, skill_milling_exp, skill_mining_exp, 
             skill_planting_exp, skill_polearms_exp, skill_smelting_exp, skill_swords_exp, skill_wands_exp, 
             skill_wind_exp 
             FROM kisnard.characters 
             WHERE name='Proskier' 
+3

您可以请发布SQL代码。这将是一个更容易诊断,而不是不得不脱离一张图片 – 2012-04-03 04:04:08

+0

添加在代码中,对不起,触发器开心:) – KisnardOnline 2012-04-03 04:20:06

回答

1

在子查询中的列上使用“AS”运算符不会给整个子查询命名。如果您查看图片的左侧部分,您会注意到子选择的列名称是选择本身,因为您没有给这些“列”一个名称。

这很难说,到底是什么你想达到的,但你可以做这样的事情......可能是你想要的东西:

SELECT a, b, (SELECT xyz FROM ...) AS c, d, e, ...

这可以让你给的子查询的别名。

+0

完美,应该想到这个...非常感谢!现在你能告诉我,这是一种疯狂的方式,还是效率低下?我不是DBA。 – KisnardOnline 2012-04-03 04:21:17

+0

这是很多SQL - 如果你想使它更好,我会假设你想定义一些视图和/或一些用户定义的函数来照顾你的数学(尽管它只是一个-1 )。如果你是“没有DBA”,如果它有效,留下你所拥有的东西,当你学到更多东西时,你可以随时重新访问。 – 2012-04-03 04:28:12

+0

好的谢谢你的建议和帮助! – KisnardOnline 2012-04-03 04:41:29