早上好。我一直在努力解决我无法解决的MySQL问题。
问题:我不明白如何SELECT
需要数据。 (SubQuery / INNER JOIN / more?)
我有两张桌子:user_pm
和user_pm_hide
在user_pm
我存储消息:
在user_pm_hide
中,我存储了该用户的隐藏("已删除的消息"),该用户有"已删除"它
例如,我收到Inbox Count
此作品
$stmt = $this->conn->prepare("SELECT count(*) FROM user_pm WHERE sentto=('$username')");
$stmt->execute();
$inboxall = $stmt->fetchColumn();
$stmt = $this->conn->prepare("SELECT count(*) FROM user_pm_hide WHERE user_id=('$username')");
$stmt->execute();
$inboxhidden = $stmt->fetchColumn();
$inboxtotal = $inboxall - $inboxhidden;
但我无法弄明白,如何展示消息,而这些消息并未隐藏。我试图像这样实现它:
SELECT user_pm.*, (SELECT * FROM user_pm_hide WHERE user_id != $username) FROM user_pm user_pm WHERE sentto=('$username')
我现在得到的错误:
SQLSTATE [21000]:基数违规:1241操作数应包含1列
答案 0 :(得分:0)
你错过了内部SELECT
部分的单引号。尝试
SELECT
user_pm.*,
(SELECT * FROM user_pm_hide WHERE user_id != '$username')
FROM
user_pm
WHERE
sentto=('$username')