sql - 使用第一个表中的 2 个变量将一个表连接到另一个表并在 Select 中获取 2 个变量
问题描述
更新 考虑 2 个表。
事件表。eventID int pk status1 int status2 int
状态表 ID int pk statusName varchar
现在每个事件都有 2 个以 int 形式写入的状态。我想在屏幕上显示事件行,但要从状态表中获取相应的状态名称。因此,我必须将事件表 2 次加入状态表。使用 status1,status2 整数到状态表的 ID。
在使用实体框架时,我正在编写这样的代码
join ds1 in db.Status on te.aStatus equals ds1.ID
join ds2 in db.Status on te.bStatus equals ds2.ID
select new {
Status1 = ds1.statusName,
Status2 = ds2.statusName,
}
但是现在由于某些原因我不想使用 Entity Framework ,而不是我想直接在 SQL 中编写它,我可以通过以下方式轻松加入 2 个 dbs
SELECT db.Status.statusName FROM db.Main INNER JOIN
Status ON dbo.Main.aStatus = dbo.Status.ID"
这将起作用。但我怎样才能进行第二次加入?
在 SELECT 之后,我使用这个 DataTable 对象并在循环中获取行。在那个循环中,我从该行列表创建。在那里我必须获得 2 个状态
foreach (DataRow item in dtbProduct.Rows)
{
StatusList.Add(new JStatus()
{
Status1= item["statusName"] ???
Status2=item["statusName"] ???
我怎样才能在这里为每个状态获得 2 个变量?
解决方案
$first_status = select status.statusName , events.* from status
join events on events.status1 = status.id
$second_status = select status.statusName, events.* from status
join events on events.status2 = status.id
foreach($first_status as $key =>status1){
foreach($second_status as $k=>status2){
if($first_status[$key]['id']== $second_status[k]['id']){
$first_status[$key]['second_status']= $status2[$k][statusName];
}
}
}
对不起,它可能对你有一点帮助。我只是试图用多个数据变量来做。
推荐阅读
- javascript - 在删除所选项目(使用退格)时,下拉列表仅在 select2 rails 中显示已删除的项目
- regex - 使用 Google Analytics 正则表达式排除 URL
- python-2.7 - 为什么我不能腌制 interp1D 函数但 interp2D 函数
- javascript - 是否可以在 iFrame 中嵌入视频聊天页面?
- angular - 为 RadListView 中的某些行启用项目滑动
- reactjs - checked={false} 将复选框类型的受控输入更改为不受控输入
- regex - 如何使用正则表达式删除引号内的空格
- python-3.x - 修改 python 脚本以使用版本 3.7.6
- php - 在php中查找数组键并获取值
- css - 当 React Material UI 中的 TextField 中存在值时自定义自动完成 CSS