First, we're going to rewrite the statement so it's a bit easier to read:
SELECT upd.username
, upd.email
, si.statename
, di.districtname
FROM userprofiledetails AS upd
INNER JOIN state_info AS si ON upd.stateid = si.stateid
INNER JOIN districtinfo AS di ON upd.districtid = di.districtname
Now, take a look at your second INNER JOIN:
INNER JOIN districtinfo AS di ON upd.districtid = di.districtname
The error is complaining that you're trying to equate a "district
name" to a "district
id".
It's telling you that you cannot convert the name to an integer to join the records in both tables.
So what do you think that join should really look like?
INNER JOIN districtinfo AS di ON upd.districtid = di.district??