SQL 联接 4 表显示包含行数据的选定列

SQL Join 4 tables display select columns with row data

提问人: 提问时间:10/23/2023 最后编辑:marc_s 更新时间:10/25/2023 访问量:62

问:

我正在尝试使用 SQL 连接 4 个表。这些表是

  • “Article”(主键“a_id”、“title”、“au_id”、“i_id”)
  • “Author”(主键“au_id”、“name”)
  • “问题”(主键“i_id”、“j_id”、“数字”)
  • “日记帐”(主键“j_id”、“标题”)

我想显示文章标题、作者、期刊和期刊。它只显示ATM 作者和问题。但是,数据似乎在行中,只是没有显示。当前代码:

const sql = "SELECT a.a_id, a.title, j.title, iss.number, au.name
FROM Article AS a 
INNER JOIN Author AS au ON a.au_id = au.au_id 
INNER JOIN Issue AS iss ON a.i_id = iss.i_id 
INNER JOIN Journal AS j ON iss.j_id = j.j_id";
SQL 联接 选择 消除歧义

评论

0赞 Hamid Haghdoost 10/23/2023
为什么 sb 应该别名一个好听且人类可读的名字?authora
2赞 CHill60 10/23/2023
@HamidHaghdoost - 为了省去一直打字的麻烦?这是常见的做法 - 尽管 的别名不是authorauthoraua
1赞 CHill60 10/23/2023
请提供一些示例数据(不是图像)、该数据的实际结果和预期结果
0赞 Hamid Haghdoost 10/23/2023
@CHill60正如您在我的评论中看到的那样,它可能会对名称感到困惑。正如你所说,这是常见的做法,但在我看来,这不是一个好的做法。
1赞 Cetin Basoz 10/23/2023
@HamidHaghdoost,你不喜欢的东西并不意味着它是一种坏习惯。例如,从我的角度来看,这是一个非常好的做法。

答:

-1赞 TemiJ 10/24/2023 #1

确保您的数据结构正确,以提供您想要的结果

SELECT a.a_id As Articleid
a.title AS ArticleTitle, 
au.name AS AuthorName, 
j.title AS JournalTitle, 
iss.number AS IssueNumber
FROM Article AS a
 INNER JOIN Author AS au 
 ON a.au_id = au.au_id
  INNER JOIN Issue AS iss 
  ON a.i_id = iss.i_id
   INNER JOIN Journal AS j 
   ON iss.j_id = j.j_id;

评论

0赞 CHill60 10/24/2023
这与 OP 的查询完全相同,只是结果中列的别名