2016-07-21 52 views
0

我發現這個查詢可以結合兩個表具有不同的行數,沒有任何相關領域:結合兩個表沒有任何類似的值(的MySQL + PHP)

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

現在我的問題是,在我的情況我無法更改FROM的值。

比如我有此查詢:

我無法更改到:

SELECT * FROM table2; 

最多,我只能FROM表名後添加語句左加入somedefaulttable ON somedefaulttable2.id = somedefaulttable .id _c。 (我忘了添加這個重要的細節,我只能在這行之後添加自定義查詢,因爲這是系統生成的,我無法刪除這個預定的LEFT JOIN)原因是因爲我受限於我正在使用的CRM,而我無法編輯默認選擇值,但我可以在所述語句後添加其他自定義查詢。

現在我的主要問題是,我需要在我的查詢中組合不同的表,並且我不能使用連接,因爲它們沒有任何公共值,它們的行數也不同,我也嘗試使用JOIN之前無果,因此決定嘗試使用不同的方法,例如合併兩張表。

這是我前一個問題的link,我使用JOIN來實現組合表格的目標。在這個鏈接中,你可以看到我想將表A和表4結合起來,但是我不能這樣做,因爲它們有不同數量的行,並且我限制了更改當前查詢以適應發佈的答案。

表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 
+0

@Jens很抱歉,請刪除標籤。這是MySQL – hungrykoala

+0

嘿爲什麼你不嘗試加入? –

+0

@vishal我已經做了我在前面的問題中所述,但問題是我的主表有比我想要加入的表更少的行,並且我想在表4中檢索所有條件 – hungrykoala

回答

1

嘗試此(內),而不連接語句將兩個表。

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

我不明白的是,不同數量的行會影響請求的解決方案。

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中的所有記錄