【问题标题】:If ID exists in other table, show null如果 ID 存在于其他表中,则显示 null
【发布时间】:2012-08-16 09:23:26
【问题描述】:

我制作了一个对话系统,其中显示了您进行过的对话的列表。 您可以删除(隐藏)一条消息。

问题是,当所有消息都被隐藏时,它会显示(显然?)随机消息。它不应显示名称或任何内容。

这是 SQL 查询:

SELECT * FROM
(SELECT * FROM post ORDER BY datotid DESC) as inv
WHERE fk_bruger_til = '$brugerid'
GROUP BY fk_bruger_fra
ORDER BY datotid DESC

以及数据库结构:

消息表:

message_id | fk_user_to | fk_user_from | message | datetime | read

隐藏消息表:

deleted_id | fk_message_id | fk_user_id 

【问题讨论】:

  • 如果隐藏消息的fk_post_id 中不存在来自消息表的post_id 会发生什么?

标签: php mysql sql phpmyadmin


【解决方案1】:

为什么不用两个单独的表来存储消息/隐藏消息,为什么不在消息表中添加一个字段来表示它是否被 1 / 0 隐藏。

这应该使您的 sql 查询更易于编写。

如果您能解释表格字段的含义,也可能会更容易。我能认出的只有一个是datetoid。

【讨论】:

  • 我认为将它放在单独的表格中会更明智,因为 user1 可以隐藏一条消息,而 user2 仍然可以看到它,因为 user2 没有隐藏它。我现在要翻译表格:-)
猜你喜欢
  • 2017-03-01
  • 1970-01-01
  • 2012-07-18
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多