MySQL:join,使用的SELECT语句具有不同的列数

时间:2014-04-21 09:45:10

标签: mysql join union

我知道有更多的问题,但我找不到合适的答案。

这是我的疑问:

$query = $mysql->query("(
                        SELECT questions.*, tags.tagData
                        FROM questions
                        LEFT JOIN tags
                        ON questions.id = tags.questId
                        )
                        UNION (
                        SELECT users.username
                        FROM users
                        LEFT JOIN questions
                        ON users.id = questions.ownerId
                        )
                    ");

我选择了表格中的所有问题,还有标签,但我将ownerId保存为所有者的ID,我希望显示用户名。现在我收到了这个错误:

  

使用的SELECT语句具有不同的列数

我做错了什么?

2 个答案:

答案 0 :(得分:1)

为什么你需要做UNION?问题表链接到用户,您可以在JOIN中使用它

SELECT questions.*, 
tags.tagData,
users.username
FROM questions
LEFT JOIN tags
ON  tags.questId = questions.id 
LEFT JOIN
users ON users.id = questions.ownerId

答案 1 :(得分:-1)

 `SELECT questions.*, tags.tagData
            FROM questions
            LEFT JOIN tags
            ON questions.id = tags.questId
            )
            UNION (
            SELECT users.username,questions.*
            FROM users
            LEFT JOIN questions
            ON users.id = questions.ownerId
            )`