如何在 Javascript 中加入两个 API,类似于 SQL 加入
How to join two APIs in Javascript similar to a SQL join
我发现这个问题与我要问的类似,但不完全相同:Is there some way I can "join" the contents of two javascript arrays much like I would do a join in SQL
在那个问题中,用户提供了两个他们想要以类似 SQL 的方式加入的数组。
我的不同之处在于我设置了多个 API 来引用数据库。我需要将 API 获取到 "join" 的值。
这是 类 的粗略示例:
public partial class test_review
{
[Key]
public int rating_id { get; set; }
public int site_id { get; set; }
public string comments { get; set; }
}
和:
public partial class test_site
{
[Key]
public int site_id { get; set; }
[Required]
[StringLength(3)]
public string site_name { get; set; }
}
如果我在 SQL 中写这篇文章,我会做类似
的事情
SELECT r.rating_id, s.site_name, r.comments
FROM test_review r
INNER JOIN test_site s on r.site_id = s.site_id
目前,我的 ReadReviews.aspx 页面中有如下代码:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script src="Scripts/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
function getReviews() {
$.getJSON("api/review",
function (data) {
$('#reviews').empty();
$.each(data, function (key, val) {
var row = '<td>' + val.rating_id + '</td><td>' + val.airport_id + '</td>';
$('<tr/>', { html: row })
.appendTo($('#reviews'));
});
});
}
$(document).ready(getReviews);
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<h2> Here are the API reviews</h2>
<table>
<thead>
<tr>
<th>Rating_id</th>
<th>airport_id</th>
</tr>
</thead>
<tbody id ="reviews">
</tbody>
</table>
</asp:Content>
(注:此jquery代码来自https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/using-web-api-with-aspnet-web-forms)
这很好,但不是我在这种情况下要找的东西。我需要结合来自两个 API 的信息。
创建几个视图会更好吗?我知道我可以做到这一点,但我不确定它 better/more efficient/faster 比直接从表中提取并以某种方式组合它们更好。
我最后做的是创建一个 SQL 视图并制作第二个 API 专门用于 return 我需要的所有数据的视图。
我发现这个问题与我要问的类似,但不完全相同:Is there some way I can "join" the contents of two javascript arrays much like I would do a join in SQL
在那个问题中,用户提供了两个他们想要以类似 SQL 的方式加入的数组。
我的不同之处在于我设置了多个 API 来引用数据库。我需要将 API 获取到 "join" 的值。
这是 类 的粗略示例:
public partial class test_review
{
[Key]
public int rating_id { get; set; }
public int site_id { get; set; }
public string comments { get; set; }
}
和:
public partial class test_site
{
[Key]
public int site_id { get; set; }
[Required]
[StringLength(3)]
public string site_name { get; set; }
}
如果我在 SQL 中写这篇文章,我会做类似
的事情SELECT r.rating_id, s.site_name, r.comments
FROM test_review r
INNER JOIN test_site s on r.site_id = s.site_id
目前,我的 ReadReviews.aspx 页面中有如下代码:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script src="Scripts/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
function getReviews() {
$.getJSON("api/review",
function (data) {
$('#reviews').empty();
$.each(data, function (key, val) {
var row = '<td>' + val.rating_id + '</td><td>' + val.airport_id + '</td>';
$('<tr/>', { html: row })
.appendTo($('#reviews'));
});
});
}
$(document).ready(getReviews);
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<h2> Here are the API reviews</h2>
<table>
<thead>
<tr>
<th>Rating_id</th>
<th>airport_id</th>
</tr>
</thead>
<tbody id ="reviews">
</tbody>
</table>
</asp:Content>
(注:此jquery代码来自https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/using-web-api-with-aspnet-web-forms)
这很好,但不是我在这种情况下要找的东西。我需要结合来自两个 API 的信息。
创建几个视图会更好吗?我知道我可以做到这一点,但我不确定它 better/more efficient/faster 比直接从表中提取并以某种方式组合它们更好。
我最后做的是创建一个 SQL 视图并制作第二个 API 专门用于 return 我需要的所有数据的视图。