質問編集履歴
1
inner joinでは取得できたこと
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
DQLでLEFT JOINできない
|
body
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
下記のようなテーブルがあり、省略していますがそれぞれに値が入ってい
|
1
|
+
下記のようなテーブルがあり、省略していますがそれぞれに値が入っていて、LEFT JOINで結合したいのですが、結果が表示されません。何が間違っているでしょうか
|
2
|
+
?(クラス名)
|
2
3
|
|
3
4
|
テーブル名 dtb_product(Product)
|
4
5
|
+---------------+----------------+--------------+------------+
|
@@ -30,13 +31,13 @@
|
|
30
31
|
|
31
32
|
|
32
33
|
|
33
|
-
これらのテーブルを合わせてdtb_productにdtb_orderのstatusを入れたものをとりだしたいです。こんな感じです。
|
34
|
+
これらのテーブルを合わせてdtb_productにdtb_orderのstatusを入れたものをとりだしたいです。イメージいえばこんな感じにしたいです。
|
34
35
|
+---------------+----------------+--------------+------------+
|
35
36
|
product_id creator_id name status
|
36
37
|
+---------------+----------------+--------------+------------+
|
37
38
|
|
38
39
|
|
39
|
-
以下のコードでdtb_product
|
40
|
+
以下のコードでdtb_productだけは抽出できました。
|
40
41
|
|
41
42
|
$em = $app['orm.em'];
|
42
43
|
$query = $em->createQuery('SELECT p FROM ECCUBE\Entity\Product p WHERE p.Creator = 3');
|
@@ -47,12 +48,21 @@
|
|
47
48
|
));
|
48
49
|
|
49
50
|
|
51
|
+
また、$em = $app['orm.em'];//パターン3
|
52
|
+
$query = $em->createQuery('SELECT p,od,o FROM ECCUBE\Entity\Product p, Eccube\Entity\OrderDetail od, Eccube\Entity\Order o WHERE od.Order = o.id AND p.id = od.Product AND p.Creator = '.$seller.'');
|
53
|
+
$sellProduct = $query->getResult();
|
54
|
+
では3つの連結バージョンが取得できましたが、すべてのレコードが表示されてしまいます。
|
50
55
|
|
51
56
|
|
52
|
-
|
53
|
-
|
54
|
-
|
57
|
+
そこで
|
58
|
+
$em = $app['orm.em'];//パターン3ver2
|
59
|
+
$query = $em->createQuery('SELECT p,od,o FROM ECCUBE\Entity\Product p LEFT JOIN Eccube\Entity\OrderDetail od ON p.id = od.Product LEFT JOIN Eccube\Entity\Order o ON od.Order = o.id WHERE p.Creator = '.$seller.'');
|
60
|
+
$sellProduct = $query->getResult();
|
55
61
|
|
62
|
+
これでいけるのでは?と思ったのですが、表示できませんでした。
|
63
|
+
どこが間違っているでしょうか?
|
64
|
+
|
65
|
+
|
56
66
|
わかりづらいかもしれないですが、よろしくお願いいたします。
|
57
67
|
もし意味不明な箇所があれば補足するので教えてください。
|
58
68
|
|