我的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
然后书籍是bookid,title,author,publisher
bookone和booktwo是引用bookid的外键,我试图实现它是如此,以便当用户点击链接时,它会提出该书与其他书籍的每个关系答案 0 :(得分:0)
使用别名时使用引号
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;
答案 1 :(得分:0)
正确的格式为: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;
答案 2 :(得分:0)
你需要再次加入书籍。类似的东西:
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
答案 3 :(得分:0)
他们正在做他们应该做的事情。 author_two应与B.author相同,title_two应与B.title相同。它们只是别名。
此外,从单个表中请求两次相同的列将无法获得表中的下一个结果 - 它只返回相同的列两次。
答案 4 :(得分:0)
如果别名在您的查询中不起作用,请检查是否包含
useOldAliasMetadataBehavior = true
在JDBC连接字符串中。