php如何让int型连接,php – 我可以在列类型INT和VARCHAR之间左键连接吗?

我被赋予了查看MSSQL查询问题的任务,我不是sql专业版!这不是我的强项.

我在2个不同的数据库中有2个表;忽略表引用,因为我已将它们从此查询中删除.我的问题是PERSON_CODE是一个表中的整数值,另一个是VARCHAR,我将运行此查询并将数据直接解析到Users表中,同时在PHP中散列密码.

但是,由于Users表中的某些字段是Jane,John这样的字符名称,并且Students中的所有值都是整数,因此我会因数据类型而收到错误.

下面是我到目前为止构建的查询 – 它非常简单:

SELECT Students.PERSON_CODE,Students.PASSWORD

FROM Students

LEFT JOIN users

ON Students.PERSON_CODE = users.username

WHERE Students.PERSON_CODE > '0'

AND users.username IS INTEGER

我需要知道是否有一种方法可以忽略Users表中不是整数的字段,所以我只能从Students表中获得整数结果.

以下是完整的解决方案.谢谢Preveen.

SELECT Students.PERSON_CODE,Students.PASSWORD

FROM Students

LEFT JOIN users

ON Students.PERSON_CODE = CASE

When ISNUMERIC(users.username) = 1 THEN users.username

END

WHERE Students.PERSON_CODE > '0'

新的更新

我做了一些更改,因为我希望查询只使用PERSON_COde / username作为标识符来显示不在两个表中的行.

SELECT Students.PERSON_CODE,Students.PASSWORD

FROM Students

LEFT JOIN users

ON cast(Students.PERSON_CODE as varchar(15)) = users.username

WHERE users.username = cast(Students.PERSON_CODE as varchar(15))

在某种程度上,我认为我需要一个完整的外部加入.

Table Students_________ Table users

PERSON_CODE____________ username

1______________________ 1

2______________________ 2

3______________________ 3

4______________________

5______________________

6______________________

7______________________

8______________________

有了这个查询,我想显示结果4,5,6,7,8

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值