バージョン選択

フォーラム

メニュー

オンライン状況

87 人のユーザが現在オンラインです。 (82 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 87
もっと...

サイト内検索

質問 > その他 > SQLの記述について

その他

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
ゲスト
投稿日時: 2016/6/21 17:17
対応状況: −−−
Re: SQLの記述について
ありがとうございました。
おかげ様で、ほしい情報が取得されていることが確認できました。


EC-CUBEというかDoctrineが初めてで独自の記述方が勉強しながらですが英語のものが多く理解に時間がかかってしまっているのですが
SQL記述に関する質問でもう一つだけお聞きしてもよろしいでしょうか?

query_builderでサブクエリを使ってSQLを組む場合はどのように記述すればよいのでしょう?

ご教示いただければ幸いです。
よろしくお願いいたします。

以下に、状況の説明を載せておきます。

商品検索画面で(同じような状況が商品登録と受注検索でも使用する予定なのですが)、利用者ごとに表示されるカテゴリを絞りたいと思いましてただDoctrineでのサブクエリの記述がわかっていなったためひとまず考えがあっているかどうかという部分でハードコーディングでif文の条件分岐をさせていたのですが、やはりかっこ悪いのとたぶんセキュリティ面もあまりよくないと思いまして
コードの量も長くなってしまいますし…

商品検索を例に
SearchProductType.phpのカテゴリの部分で以下のようなSQLをquery_builderで作成したいと思っています。

・カテゴリ構成(例)
 食器
  ┣店舗A
  ┗店舗C
 インテリア
  ┣店舗B
  ┗店舗C

思惑:
ログインしているユーザ名と同じ名前のカテゴリ(カテゴリ名が店舗名になるようになっています)を取得する。

考えたSQL:
SELECT *
FORM dtb_category ca
WHERE (ca.category_id, ca.parent_category_id) IN (
SELECT Ca.category_id, Ca.parent_category_id
WHERE Ca.category_name = '取得した店舗名')

これで、取得した店舗名からカテゴリIDの同じものに対して表示を行う。
しかし、店舗Cの場合表示がこのままだと店舗Cで2個並ぶようになってしまいそれぞれの親がどちらなのかわからないという問題があります。

query_builderで作成してみたSQL
'query_builder' => function(EntityRepository $er) use($name) {
return $er->createQueryBuilder('ca')
->where('(ca.id , ca.Parent) IN (SELECT Ca.id, Ca.Parent FROM dtb_category Ca WHERE Ca.name = :name)')
->setParameter('name', $name)
->orderBy('ca.rank', 'DESC');
},
これの場合、QueryExceptionとなり
[Syntax Error] line 0, col 54: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got ','
のエラーが出てしまっています。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   SQLの記述について ゲスト 2016/6/21 11:10
     Re: SQLの記述について DELIGHT 2016/6/21 11:25
       Re: SQLの記述について ゲスト 2016/6/21 13:43
         Re: SQLの記述について DELIGHT 2016/6/21 13:59
           管理画面、受注状況をクリックした際に条件を追加したい ゲスト 2016/6/21 14:46
             Re: 管理画面、受注状況をクリックした際に条件を追加したい DELIGHT 2016/6/21 14:59
               Re: 管理画面、受注状況をクリックした際に条件を追加したい ゲスト 2016/6/21 15:07
         » Re: SQLの記述について ゲスト 2016/6/21 17:17
             Re: SQLの記述について DELIGHT 2016/6/21 18:42
               Re: SQLの記述について DELIGHT 2016/6/22 10:26
                 Re: SQLの記述について ゲスト 2016/6/22 15:27

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,856名です
総投稿数は109,989件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.