组合两个没有任何类似值的表(MySQL + PHP)

时间:2016-07-21 05:40:47

标签: php mysql join merge

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

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

2 个答案:

答案 0 :(得分:1)

尝试使用(内部)连接两个没有JOIN语句的表。

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

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

答案 1 :(得分:0)

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

     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的所有记录