每个派生表在MySQL中都必须有自己的别名错误(Every derived table must have its own alias error in MySQL)
我有以下查询:
SELECT SUM( cost )
FROM (
SELECT s.cost
FROM sandwiches AS s
WHERE s.name = "Cheese Steak"
)
UNION (
SELECT p.cost
FROM pizza AS p
WHERE TYPE = "Plain"
AND SIZE = "L"
)
这给了我一个错误:
#1248 - 每个派生表都必须有自己的别名
I have the following query:
SELECT SUM( cost )
FROM (
SELECT s.cost
FROM sandwiches AS s
WHERE s.name = "Cheese Steak"
)
UNION (
SELECT p.cost
FROM pizza AS p
WHERE TYPE = "Plain"
AND SIZE = "L"
)
That gives me an error of:
#1248 - Every derived table must have its own alias
原文:https://stackoverflow.com/questions/5824873
更新时间:2019-11-13 12:25
最满意答案
您需要别名临时表
SELECT SUM( cost )
FROM
(
(
SELECT s.cost
FROM sandwiches AS s
WHERE s.name = "Cheese Steak"
) AS T1
UNION
(
SELECT p.cost
FROM pizza AS p
WHERE TYPE = "Plain"
AND SIZE = "L"
) AS T2
) AS T
You need to alias your temp tables
SELECT SUM( cost )
FROM
(
(
SELECT s.cost
FROM sandwiches AS s
WHERE s.name = "Cheese Steak"
) AS T1
UNION
(
SELECT p.cost
FROM pizza AS p
WHERE TYPE = "Plain"
AND SIZE = "L"
) AS T2
) AS T
2011-04-28
相关问答
看起来你在snap之后有额外的右括号。 它应该是1而不是2个右括号。 SELECT `snap`.`ID`, `user`.`username`, `vote`.`type`
FROM (`snap`) JOIN `user` as u ON `u`.`ID` = `snap`.`user`
LEFT JOIN (select * from vote where user = "18") as vote ON `snap`.`ID` = `vote`.`snap`
JOIN (SELECT
...
您需要别名临时表 SELECT SUM( cost )
FROM
(
(
SELECT s.cost
FROM sandwiches AS s
WHERE s.name = "Cheese Steak"
) AS T1
UNION
(
SELECT p.cost
FROM pizza AS p
WHERE TYPE = "Plain"
AND SIZE = "L"
) AS T2
) AS T
You need to alias your t
...
每个派生表(AKA子查询)必须确实有一个别名。 必须给括号中的每个查询赋予一个别名( AS whatever ),这可以用于在外部查询的其余部分中引用它。 SELECT ID FROM (
SELECT ID, msisdn FROM (
SELECT * FROM TT2
) AS T
) AS T
在你的情况下,当然,整个查询可以被替换为: SELECT ID FROM TT2
Every derived table (AKA sub-query) must
...
首先,我认为您最好重新设计数据库。 具有相同数据的相同结构的多个表通常不是一个好主意。 但是,您需要的是使用MySQL过程来构建一些动态SQL然后执行它,返回结果数据。 可以使用以下程序执行此操作: - DROP PROCEDURE IF EXISTS dynamic;
delimiter //
CREATE PROCEDURE dynamic()
BEGIN
DECLARE question_table_value VARCHAR(25);
DECLARE b INT DE
...
为您的子查询设置别名,如: Select * from days
cross join
(
Select practices.*, providers.*, practice_locations.*
from practices
Inner Join providers on practices.health_post_id = providers.health_post_id
Inner join practice_locations on practices.health_post_id =p
...
您需要在括号后添加别名,如下所示 select s.*
from ta as s
left join (select a.* from tb as a) as a on/* here you need input condtion */
You need to add an alias after parenthesis as below select s.*
from ta as s
left join (select a.* from tb as a) as a on/* here
...
你需要给你的查询提供别名: SELECT SUM(`quant`), MONTH(`date`) AS month, `id`
FROM ((SELECT `date`, `id`, count(`hit`) AS `quant`
FROM `stat_2014_07`
WHERE `k_id` = '123') t1
UNION ALL
(SELECT `date`, `id`, cou
...
你正在加入 ON cisT.countrycode = c2.countrycode 但是cisT表中不存在countrycode列。 You are joining ON cisT.countrycode = c2.countrycode but countrycode column does not exist in cisT table.
$row1=mysqli_query($conn,"
SELECT firstname, lastname, artistId
FROM artist WHERE
artistId=(SELECT artistId FROM roles WHERE movieCode ='$movie[movieCode]' and role = 'Director') AS table_alias ")or die(mysqli_error($conn));
这应该工作,每个子查询必须有一个别名“AS
...
"SELECT pk"
+ " FROM ({{SELECT COUNT(*) as num, {Book.pk} as pk"
+ " FROM {Rental JOIN Book ON {Rental.product} = {Book.pk}}"
+ " GROUP BY {Rental.product}, {Book.pk}"
+ " ORDER BY num DESC LIMIT ?limi
...