【问题标题】:combine two tables without any similar values (MySQL + PHP)合并两个没有任何相似值的表(MySQL + PHP)
【发布时间】:2016-11-24 13:02:29
【问题描述】:

我发现这个查询可以组合两个具有不同行数且没有任何相关字段的表:

SELECT a.*, b.* FROM table1 a, table2 b;

现在我的问题是我无法更改 FROM 的值。

例如我有这个查询:

SELECT * FROM table1;

我无法将其更改为:

SELECT * FROM table2;

最多只能在FROM table_name LEFT JOIN somedefaulttable ON somedefaulttable2.id = somedefaulttable .id_c之后添加语句。 (我忘了添加这个重要的细节,我只能在这一行之后添加自定义查询,我无法删除这个预定的 LEFT JOIN,因为这是系统生成的)这是因为我受到我正在使用的 CRM 的限制,并且我无法编辑默认选择值,但我可以在所述语句之后添加其他自定义查询。

现在我的主要问题是我需要在我的查询中组合一个不同的表,我不能使用连接,因为它们没有任何共同的值,而且它们的行数也不同,我之前也尝试过使用 JOIN无济于事,因此决定尝试使用不同的方法,例如合并两个表。

这是我上一个问题的link,我使用 JOIN 来实现合并表格的目标。在此链接中,您可以看到我想合并表 A 和表 4,但我不能使用 JOIN 这样做,因为它们的行数不同,而且我在更改当前查询以适应发布的答案方面受到限制。

表 A。

id | name | deleted | amount | due_date   | status
1  | a    | 0       | 10     | 2016-07-18 | Unpaid
2  | b    | 0       | 20     | 2016-07-19 | Unpaid
3  | c    | 0       | 15     | 2016-07-18 | Unpaid

表 B

id | name   | due_date   | status
1  | a      |            | Unpaid
2  | b      |            | Unpaid
3  | c      |            | Unpaid
4  | d      | 2016-07-19 | Unpaid

表 C

id | table_d_id | table_a_id
1  | 1          | 1
2  | 2          | 2
3  | 3          | 3

表 D

id | 
1
2
3

【问题讨论】:

  • @Jens 对此感到抱歉,请删除标签。它是 MySQL
  • 嘿,你为什么不试试加入呢?
  • @vishal 我已经按照上一个问题中的说明做了,但问题是我的主表的行数少于我要加入的表,而且我想检索表 4 中的所有内容有一些条件
  • 你能用表格更新你的问题吗
  • @vishal 更新了表格

标签: php mysql join merge


【解决方案1】:

尝试在没有 JOIN 语句的情况下(内部)连接两个表。

SELECT a.x, a.y, b.x, b.y FROM  table1 a, table2 b WHERE a.x = b.x

我不明白的是,不同的行数如何影响请求的解决方案。

【讨论】:

    【解决方案2】:

    我在表格之间创建了一对多的链接 使用您的示例和插入的行数,您应该尝试以下操作:

         SELECT TableC.*
         FROM TableB, TableD INNER JOIN (TableA INNER JOIN TableC ON TableA.ID =       TableC.table_a_id) ON TableD.ID = TableC.table_d_id;
    

    这将带来表C的所有记录

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-16
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 1970-01-01
      相关资源
      最近更新 更多