【问题标题】:How to get Simple Table data in multiple SQL query php如何在多个 SQL 查询 php 中获取简单表数据
【发布时间】:2018-09-06 15:51:08
【问题描述】:

我正在尝试从一个表中获取数据,我从一个表中接收到数据,但是在我的第一个表中存在一些问题,我有 6 个查询并且我允许最多 12 个查询结果。在我的查询中,我在我的 SQL 中收到了重复查询,请看一下。抱歉英语不好。

$query = $this->db->query("SELECT * FROM yt_sub,done WHERE yt_sub.current < yt_sub.total AND done.link != yt_sub.url AND done.uid != '$id' ORDER BY RAND() LIMIT 12");

使用这个 SQL 查询我收到了 12 行,但根据这个 sql 只有 6 行通过抛出它,但我收到了 6 行。

【问题讨论】:

  • 我收到了 12 行...但我收到了 6 行。哪一个是正确的?如果您还包括示例数据和所需的输出,那就更好了。

标签: php mysql


【解决方案1】:

使用 GROUP BY

$query = $this->db->query("SELECT * FROM yt_sub,done WHERE yt_sub.current < yt_sub.total AND done.link != yt_sub.url AND done.uid != '$id' GROUP BY done.uid ORDER BY RAND() LIMIT 12");

【讨论】:

  • 可能有问题 done.link != yt_sub.url AND done.uid != '$id' 命令现在不起作用.. 如果 url 和 uid 在同一行中可用,请跳过它。是我做错了什么还是你的 sql 有问题?
【解决方案2】:

使用 DISTINCT 见下文,例如

$query = $this->db->query("SELECT DISTINCT * FROM yt_sub,done WHERE yt_sub.current < yt_sub.total AND done.link != yt_sub.url AND done.uid != '$id' ORDER BY RAND() LIMIT 12");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 2015-06-18
    • 2022-10-02
    相关资源
    最近更新 更多