繁体   English   中英

MySQL选择别名不起作用

[英]mysql select alias not working

我在执行select语句时遇到麻烦,当运行title_two和author_two时,下一个标题值未正确填充。 相反,它们的打印内容与b.title和b.author相同。 我试过将它们声明为

 `B.title AS title_two`.   

  SELECT R.bookone, B.title, B.author,
     R.booktwo, B.title title_two, B.author author_two, 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B ON R.bookone = B.bookid;

有两个桌子

具有以下关系-Relationshipid,bookone,booktwo,relation,relationlike,relationdislike

然后是书号,书名,作者,出版商的书

bookone和booktwo是引用bookid的外键,我试图达到的目的是拥有它,因此当用户单击链接时,它将显示该书与其他书的每种关系

使用别名时使用引号

 SELECT R.bookone, B.title, B.author,
     R.booktwo, B.title as 'title_two', B.author as 'author_two', 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B ON R.bookone = B.bookid;

正确的格式是: ColName作为NewColName

SELECT R.bookone as `BookOne`
  , ...
FROM relationships R 
INNER JOIN books B ON R.bookone = B.bookid;

或简单地(不带AS)

SELECT R.bookone `BookOne`
  , ...
FROM relationships R 
INNER JOIN books B ON R.bookone = B.bookid;

您需要再参加一本书。 就像是:

  SELECT R.bookone, B1.title, B1.author,
    R.booktwo, B2.title title_two, B2.author author_two, 
    R.relation, R.relationlike, R.relationdislike 
    FROM relationships R 
    INNER JOIN books B1 ON R.bookone = B1.bookid
    INNER JOIN books B2 ON R.booktwo = B2.bookid

他们正在做应该做的事情。 author_two应与B.author相同,title_two应与B.title相同。 它们只是别名。

同样,从单个表中两次请求同一列将不会获得表中的下一个结果-它只会返回同一列两次。

如果您的查询中无法使用别名,请检查是否包含

useOldAliasMetadataBehavior = true

在JDBC连接字符串中。

https://bugs.mysql.com/bug.php?id=33966

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM