我的 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、书名、作者、出版商
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;
您需要再加入一次书籍。比如:
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 连接字符串中。
正确的格式是:
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;