为什么以下查询无效?Mysql抱怨z - 我不能在WHERE子句中使用别名吗?
SELECT x + y AS z, t.* FROM t
WHERE
x = 1 and
z = 2
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
Error Code : 1054
Unknown column 'z' in 'where clause'
Run Code Online (Sandbox Code Playgroud) 我收到此错误:#1054 - 'on子句'中的未知列't.mobile'
SELECT t.*,v.name,v.contact_person_email,l.firstname as memname
FROM transactions t , vendor v
LEFT JOIN loyalty_members l ON (t.mobile=l.mobile)
WHERE t.vendor_id ='N1WU95'
AND v.alert_mail = '2'
AND t.add_date <= '2011-07-22 09:00:00'
AND t.add_date >= '2011-07-21 09:00:00'
AND t.vendor_id = v.id
AND t.type = '1'
AND t.deleted != '1'
AND t.reference_id = '0'
GROUP BY t.mobile
HAVING COUNT(t.mobile) > 1;
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我解决这个问题吗?
谢谢.
我正在使用MySQL 5.5和phpmyadmin 3.5.2(由http://www.freewebhostingarea.com提供)
我的SQL查询是:
INSERT INTO `example`(`id`, `name`, `password`) VALUES (1,we,5)
Run Code Online (Sandbox Code Playgroud)
其中id是int类型,名称和密码是varchar.
但是当在名称和年龄中插入除整数之外的任何值时,它会显示#1054错误,即
#1054 - Unknown column 'we' in 'field list'
Run Code Online (Sandbox Code Playgroud) 我有这个小的SQL查询.
SELECT a.`id` , a.`title` , a.`date` ,
(
SELECT MAX( grade )
FROM tests
WHERE userid = 41
AND presid = a.`id`
) AS grade
FROM `presentations` a
WHERE a.`visible` = 1
AND `grade` >= 5
ORDER BY `grade` DESC
Run Code Online (Sandbox Code Playgroud)
这给了我错误
1054 - 'where子句'中的未知列'等级'
但如果我删除第二行,它工作正常.我试图做AND a.grade,甚至给测试表一个名字,并将该名称附加到等级,但仍然没有运气.
如何在WHERE子句中使用此内联查询?
我发现这有效,但这是唯一的方法吗?
SELECT a.`id` , a.`title` , a.`date` ,
(
SELECT MAX( grade )
FROM tests
WHERE userid = 41
AND presid = a.`id`
) AS grade
FROM `presentations` a
WHERE …Run Code Online (Sandbox Code Playgroud) 我试图写出表面上应该是相对简单的SQL查询 - 然而,我无法让它们发挥作用.
是否可以编写如下所示的查询:
select t.name
from (select *
from mystoredproc(1,2,3) as t)
where t.name = 'foobar'
Run Code Online (Sandbox Code Playgroud)
上述查询存在两个问题:
1)首先,上述声明起作用.我的db引擎(mySQL)抱怨:
ERROR 1054(42S22):'字段列表'中的未知列't.name'
2)我想在SELF JOIN中使用返回的表t.但是,我不想再次调用mystoredproc(...),因为这是一个非常昂贵的电话.
任何人都知道如何解决这些问题?
顺便说一句,即使我正在使用mySQL(现在),我更愿意,如果任何提供的SQL片段是db不可知的(即ANSI SQL)
我需要在子查询中执行子查询,导致'where子句'中的"未知列't1.product_id'".在我的例子中,它在第7行.如何解决这个问题呢?
SELECT *,product_id id,
(SELECT GROUP_CONCAT (value ORDER By `order` ASC SEPARATOR ', ')
FROM (
SELECT `order`,value
FROM slud_data
LEFT JOIN slud_types ON slud_types.type_id=slud_data.type_id
WHERE slud_data.product_id = t1.product_id
AND value!='' AND display=0
LIMIT 3
) tmp) text
FROM slud_products t1
WHERE
now() < DATE_ADD(date,INTERVAL +ttl DAY) AND activated=1
ORDER BY t1.date DESC
Run Code Online (Sandbox Code Playgroud)
我没有在MySQL上花费大量时间,但我被要求调查我教会网站的问题.它已经停机了很长一段时间,我试图让它恢复运行.原始网站是在Mambo 4.5.3中完成的,这是一个旧版本.我会在某些时候升级它,但我只想让它暂时运行.
我目前在下面的Mambo内置查询中遇到问题.站点管理尝试访问页面的任何地方,我收到错误消息:
'on子句'中的未知列'c.access'.
我已经验证该列确实存在于指定的表中.现在我很难过.我打开了MySQL查询分析器并粘贴了查询,我得到了代码为1054的相同错误消息.有没有人有任何想法?
SELECT
c.*,
g.name AS groupname,
cc.name,
u.name AS editor,
f.content_id AS frontpage,
s.title AS section_name,
v.name AS author
FROM
mos_content AS c,
mos_categories AS cc,
mos_sections AS s
LEFT JOIN mos_groups AS g ON g.id = c.access
LEFT JOIN mos_users AS u ON u.id = c.checked_out
LEFT JOIN mos_users AS v ON v.id = c.created_by
LEFT JOIN mos_content_frontpage AS f ON f.content_id = c.id
WHERE
c.state >= 0
AND c.catid=cc.id
AND cc.section=s.id
AND s.scope='content'
ORDER …Run Code Online (Sandbox Code Playgroud) SELECT p.id
FROM produkty p, przyporzadkowania pr, stany_magazynowe, gk_grupy_produkty
INNER JOIN sub_subkategorie ssi
ON pr.sub_subkategorie_id = ssi.ID
Run Code Online (Sandbox Code Playgroud)
表及其重要字段
produkty - id, pozycja
przyporzadkowania - id, produkt_id, sub_kategoria_id, sub_subkategoria_id
sub_subkategorie - id, subkategorie_id, pozycja
subkategorie - id, kategorie_id, pozycja
kategorie - id, pozycja
Run Code Online (Sandbox Code Playgroud)
错误"#1054 - 'on子句'中的未知列'pr.sub_subkategorie_id'"
试过
SELECT p.id, pr.sub_subkategorie_id
Run Code Online (Sandbox Code Playgroud)
结果相同.
完整查询(未通过上述查询失败进行测试):
SELECT p.id
FROM produkty p, przyporzadkowania pr, stany_magazynowe, gk_grupy_produkty
INNER JOIN sub_subkategorie ssi ON pr.sub_subkategorie_id = ssi.ID
INNER JOIN subkategorie si ON ssi.subkategorie_id = si.id
INNER JOIN kategorie c …Run Code Online (Sandbox Code Playgroud) 我想知道在使用计算字段时是否对raw()方法的语法有任何限制.这是一个简单的例子:
Company.objects.raw('''SELECT *,core_location.a + core_location.b as dist
FROM core_location,core_company
ORDER BY dist''')
Run Code Online (Sandbox Code Playgroud)
上面的代码按预期工作(结果按计算字段'dist'排序),但是当我添加WHERE子句时,例如:
Company.objects.raw('''SELECT *,core_location.a + core_location.b as dist
FROM core_location,core_company
WHERE dist<10
ORDER BY dist''')
Run Code Online (Sandbox Code Playgroud)
我得到了(1054,'where where'中的"未知栏'dist'")
到目前为止看起来我不能在WHERE子句中使用计算字段,但我可以在ORDER BY语句中使用它.请分享您的经验.谢谢.
我正在使用cakephp,我希望在我的userController.php中从另一个表(ingredient_aliases)中检索数据.这是成分阿里亚斯的模型
class IngredientAlias extends AppModel {
public $name = 'IngredientAlias';
public $useTable = 'ingredient_aliases';
public $belongsTo = array(
'Ingredient' => array(
'className' => 'Ingredient',
'foreignKey' => 'ingredient_id'
)
);
...
Run Code Online (Sandbox Code Playgroud)
我想从我的userController.php中检索表ingredient_aliases(最后创建的10个)中的数据
我试过这种模式:
$this->loadModel('IngredientAlias', 2);
$ingg = $this->IngredientAlias->read();
$options['joins'] = array(
array('table' => 'ingredient_aliases',
'alias' => 'ing',
'type' => 'LEFT',
'foreignKey' => 'ing.user_id',
'order' => 'ing.created DESC',
'limit' => 3,
'conditions' => array(
'ing.user_id = User.id'
)
)
);
$options['conditions'] = array( );
$this->set('ingredient',$this->IngredientAlias->find('all', $options));
Run Code Online (Sandbox Code Playgroud)
但这给了我这个错误:错误:SQLSTATE [42S22]:找不到列:1054'on子句'中的未知列'User.id'
有人能帮我吗?谢谢