sql - 如何在 SQL 中使用多个 WHERE?
问题描述
我有两张桌子:
Table A: ticket
RoundID | PlayerID | num1 | num2 | num3 | num4 | num5 | num6
Table B: lotteryresult
RoundID | num1 | num2 | num3 | num4 | num5 | num6
我创建了一个选择器:
SELECT roundID, UserInfo_ID, num1, num2, num3, num4 , num5, num6
FROM ticket JOIN lotteryresult ON ticket.roundID = lotteryresult.roundID
WHERE...; -- I want to match num1 to num6 to find matched numbers
问题是我不知道如何将 num1 与 num6 匹配,困难在于位于表 A 的 num1 中的数字(例如“6”)可能位于表 B 的 num3 中。
那么我该怎么做才能匹配这些数字呢?
解决方案
我不确定目标是什么:
where
a.num1 in (b.num1, b.num2, b.num3, b.num4, b.num5, b.num6) or
a.num2 in (b.num1, b.num2, b.num3, b.num4, b.num5, b.num6) ...
或者,也许你想计算比赛?
select *
from ticket t inner join lotteryresult r on r.roundID = t.roundID
cross apply (
select sum(case when pvt.num in (r.num1, r.num2, r.num3, r.num4, r.num5, r.num6) then 1 end
from (values (t.num1), (t.num2), (t.num3), (t.num4), (t.num5), (t.num6k)) pvt(num)
) m(matches)
推荐阅读
- apache-spark - HDInsight 上的 PySpark Kafka 流式传输 - TypeError:“JavaPackage”对象不可调用
- c# - Asp.net,广播简单消息
- bash - jq 错误“对象在 csv 行中无效”
- authentication - NestJS & Passport - 在警卫中设置响应标头
- python - Django PasswordChangeForm 中的自动对焦字段是什么?
- c# - Console.Write(new string('* ', n) 字符文字中的字符太多
- node.js - TypeError: (0 , _schemaUtils.default) 不是函数
- r - if_else 和 str_c (tidyverse)
- android - 如何在android中以列表计数器的形式获取搜索结果
- abp - 尝试使用模块模板和 web.unified 主机示例时出错