0

クエリの結果に問題があります。特定の結合で結合してそれに関するすべての情報を取得したい2つのテーブルと、2番目のテーブルを含まないまたは条件があります。私のテーブルがあります:

main_orders:

id | destination
----------
1  |  London
2  |  Germany
2  |  Netherland
3  |  Polska
4  |  JP

includes:

id | rel_id
----------
1  |  2
1  |  3

ここで、ID 番号 1 がメインの注文であり、2 番目の表の rel_id のように表示される残りの注文もカバーします。

main_orders から id 1 の注文明細と、この id に関連する注文を選択したい

私の質問は、

SELECT a.id FROM main_orders a, includes b
where (a.id = 1) OR (b.id = 1 and a.id = b.rel_id) 

2番目のテーブルに相対的な順序がある場合にのみ機能します。結果が次のようになるように助けてください

RESULTANT ROWS:

id | destination
----------
1  |  London
2  |  Germany
2  |  Netherland
3  |  Polska

ありがとう

4

4 に答える 4

0

おそらくこのようなものですか?

SELECT a.id FROM a LEFT JOIN b ON a.id=b.id GROUP BY a.id;

(明らかにテーブル名を使用してください)

于 2013-10-11T16:56:42.077 に答える
0

これを試して。

SELECT a.id FROM main_orders a, includes b
where (b.id=1 and (a.id=b.rel_id or a.id=1 ))
于 2013-10-11T17:21:25.247 に答える
0
SELECT      main_orders.id, main_orders.destination
FROM        main_orders
  LEFT JOIN includes ON includes.rel_id = main_orders.id
WHERE       main_orders.id = 1 OR includes.id = 1

sqlfiddleで参照してください。

于 2013-10-11T17:01:52.397 に答える