0
这很好,但现在我想加入第三张名为“房屋”的表格。但前提是houses.owner
等于p.id
。如果没有houses.owner
等于p.id
不选择。UNION的问题MySQL
当前SQL的作品
-- Select player AND if he is member of a guild then get rank and guild
SELECT p.id, p.account_id, p.group_id, p.name, p.sex, p.level, p.vocation, p.town_id, p.lastlogin, p.comment, p.deleted, p.online, p.rank_id, gr.name AS rank, g.name AS guild
FROM players p
INNER JOIN guild_ranks gr ON gr.id = p.rank_id
INNER JOIN guilds g ON g.id = gr.guild_id
WHERE p.name = :name and p.rank_id > 0
UNION ALL
SELECT p.id, p.account_id, p.group_id, p.name, p.sex, p.level, p.vocation, p.town_id, p.lastlogin, p.comment, p.deleted, p.online, p.rank_id, '' AS rank, '' AS guild
FROM players p
WHERE p.name = :name AND p.group_id < 5 AND p.rank_id = 0
我曾尝试加入:
,但它给了我:
The used SELECT statements have a different number of columns
我希望你需要将空白字符串转换为与第一个查询相同的数据类型。 – 2014-10-30 20:39:47
排除所有列,然后慢慢地将它们添加回来进行故障排除。从文字'1'开始,然后使用p.id,然后使用p.id,p.account_id等,直到查询中断。 – 2014-10-30 20:46:26