我不知道它叫什么,所以我只想解释一下。
假设有两个表,tableA
和tableB
。
tableA
中,有一列有一个数字(例如105)tableB
中,有一列有文字(例如'This')105表示'This'。
所以一个数字存储在A
表中,而w / c在B
表中有意义。
我想获得tableA
号码,但是当它显示时会显示“这个”。
逻辑:如果A的结果为105,则显示B中的等效文本,其中id为105。 显示:这个
SELECT TOP 1
CHAR_KEY AS charid,
USER_KEY AS userid,
CONVERT(VARCHAR,substring(char_data, 9, 16)) AS name,
CONVERT(INT,cast(reverse(substring(char_data, 7, 2)) as BINARY(2))) AS level,
CONVERT(INT,substring(char_data, 25, 1)) AS type,
CONVERT(INT,cast(reverse(substring(char_data, 263, 2)) as BINARY(2))) AS strength,
CONVERT(INT,cast(reverse(substring(char_data, 265, 2)) as BINARY(2))) AS wisdom,
CONVERT(INT,cast(reverse(substring(char_data, 267, 2)) as BINARY(2))) AS dexterity,
CONVERT(INT,cast(reverse(substring(char_data, 269, 2)) as BINARY(2))) AS charisma,
CONVERT(INT,cast(reverse(substring(char_data, 271, 2)) as BINARY(2))) AS intelligence,
CONVERT(INT,cast(reverse(substring(char_data, 273, 2)) as BINARY(2))) AS constitution,
CONVERT(INT,cast(reverse(substring(char_data, 309, 4)) as BINARY(4))) AS fame,
CONVERT(INT,cast(reverse(substring(char_data, 33, 4)) as BINARY(4))) AS guild,
CONVERT(INT, substring(char_data, 261, 1)) AS permission
FROM CHAR_DATA0 WHERE CONVERT(INT, substring(char_data, 261, 1))=0x00 ORDER BY level DESC
获取公会名称的查询。
SELECT
guild_name
FROM guild_data WHERE guild_key=guild
我想要的是guild
。
guild
结果的第一个SELECT查询示例:518
请帮助,谢谢。
答案 0 :(得分:1)
SELECT
guild_data.guild_name
FROM CHAR_DATA0
inner join guild_data on guild_key = CONVERT(INT,cast(reverse(substring(char_data, 33, 4)) as BINARY(4)))
WHERE CONVERT(INT, substring(char_data, 261, 1))=0x00 ORDER BY level DESC
答案 1 :(得分:0)
您需要“选择”和“加入”
select b.text
from tablea a
inner join tableb b on a.id = b.id
where a.id = 105
然而,要使这项工作,你需要在两个表中使用“id”。