【问题标题】:SQL to compare columns fro two different tablesSQL比较两个不同表中的列
【发布时间】:2016-04-13 00:50:31
【问题描述】:

我正在尝试使用 sql 仅在表 1 中的字段 x 与表 2 中的字段 y 匹配时显示消息

SELECT * 
from privatemessags 
JOIN users 
WHERE privatemessags.reciver LIKE users.id

这就是我目前拥有的,但它仍在打印我的数据库的两个字段 如果表 1 中的 id 等于表 2 中的 reciver,我希望打印消息

任何帮助都非常感谢谢谢

【问题讨论】:

  • 很难看出你在做什么。您的问题使用的表名和列名与您的查询不同。也许on privatemessags.id = users.reciver。这似乎也只是一个 SQL 问题。如果您不想要多个列,请将 * 替换为您想要返回的列。
  • 很抱歉这个问题已经有一段时间了,现在我想将用户表中的 id 列与私人消息表中的接收者表进行比较,看看它们是否匹配

标签: php sql twig silex laragon


【解决方案1】:

首先,您的加入不正确。鉴于您的陈述:

我正在尝试使用 sql 仅在表 1 中的字段 x 与表 2 中的字段 y 匹配时才显示消息

那么您确实希望加入 table1.x = table2.y 的两个表。您可以通过创建类似于以下内容的内容来完成此操作:

从 table1 t1 中选择消息 在 t1.x = t2.y 上加入 table2 t2

通过加入两个表,您只会在 table1.x = table2.y 时收到消息。

【讨论】:

  • select privatemessags.reciver from privatemessags t1 在 t1.reciver = t2.id 上加入用户 t2
  • “字段列表”中的未知列“privatemessags.reciver”是我从上述评论中得到的
【解决方案2】:

要仅显示第一个表中的字段,您可以在选择指令中指定表名:“privatemessags.*”

SELECT privatemessags.* 
from privatemessags 
JOIN users 
WHERE privatemessags.reciver LIKE users.id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-07
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多