2016-07-21 3 views
0

私は行数が異なると任意の関連分野ずに2つのテーブルを結合することができ、このクエリを見つけせずに2つのテーブルを結合:任意の同様の値(のMySQL + PHP)

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

今私の問題は、私の場合と私はFROMの値を変更することはできません。

例私はこのクエリを持っている:

私はそれを変更することはできません。

せいぜい
SELECT * FROM table2; 

、私は唯一のFROM table_nameを後のステートメントを追加することができますLEFT JOINはいつもONになります。somedefaulttable2.id = somedefaulttable .id _c。 (私はこの重要な詳細を追加するのを忘れた、私はこの行の後にのみカスタムクエリを追加することができます、私はこのシステムが生成されているので、この所定のLEFT JOINを削除することはできません)これは私が使用しているCRMによって制限され、既定の選択値を編集することはできませんが、上記のステートメントの後に追加のカスタムクエリを追加できます。

ここで私の主な問題は、クエリで別のテーブルを結合する必要があり、共通の値を持たず、行数も異なるために結合を使用できないことです。また、JOIN以前は役に立たなかったので、2つのテーブルをマージするなどの異なるアプローチを試すことにしました。

これは私の前の質問にlinkであり、私はテーブルを組み合わせるという目標を達成するためにJOINを使用していました。このリンクでは、表Aと表4を結合したいと思うが、JOINでは行数が違うので現行のQueryを変更して投稿した回答に合うように変更することはできない。

表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

@ジェンスはそれについて残念、タグを削除します。それはMySQLです – hungrykoala

+0

なぜあなたは参加しようとしないのですか? –

+0

@vishal私は以前の質問ですでに述べたように私はすでに行っていましたが、問題は私のメインテーブルが私が参加したいテーブルよりも少ない行を持ち、またテーブル4のすべてをいくつかの条件で検索したいのです – hungrykoala

答えて

1

は、結合文なしで2つのテーブルを結合(内側)のためにこれを試してみてください。

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

私が理解していないのは、要求されたソリューションに影響する行数の違いです。

0

私はあなたがこれを試してみてください挿入された行のあなたの例や数を持つテーブル の間には多くの1つのリンクを作成しました:

 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のすべてのレコードをもたらすでしょう

関連する問題