2台あり、game_jnship_equip_list
は店舗基本情報です、game_jnship_equip
はプレイヤーの持っているものの店舗です。ここで左結合を使用しますが、値は表示されませんか?
はgame_jnship_equip_list
データです:
+------+----------+--------------+------------+------------+
| ID | userid | itemcode | atfigure | eposition |
+------+----------+--------------+------------+------------+
| 1 | 1 | 1 | 100 | 1 |
| 2 | 1 | 2 | 500 | 2 |
+----------------------------------------------------------+
そして、私は以下のように照会:ここ
+--------+----------------+----------+----------+
| ID | desc | name | type |
+--------+----------------+----------+----------+
| 1 | hello_weapon | weapon | 1 |
| 2 | hello_shirt | shirt | 2 |
| 3 | hell_weapon | Hweapon | 1 |
+-----------------------------------------------+
はgame_jnship_equip
データである
$quequip = DB::query("SELECT t1.*,t2.name AS weaponame, t2.edesc AS weapondesc, t3.atfigure AS atkbonus, t4.name AS shirtname, t4.edesc AS shirtdesc FROM ".DB::table('game_jnship_equip')." t1 LEFT JOIN ".DB::table('game_jnship_equip_list')." t2 ON (t1.itemid = t2.id AND t1.eposition = '1') LEFT JOIN ".DB::table('game_jnship_equip')." t3 ON (t2.type = t3.eposition) LEFT JOIN ".DB::table('game_jnship_equip_list')." t4 ON (t1.itemid = t4.id AND t1.eposition = '2') WHERE t1.uid = 'userid' AND t1.status = '1'");
$ruequip = DB::fetch($quequip);
しかし、私は以下のように値を得ることができます:
$ruequip['weaponame'] = weapon;
$ruequip['weapodesc'] = hello_weapon;
$ruequip['atkbonus'] = 100;
約t4
はすべて空白です。
$ruequip['shirtname'] = ;
$ruequip['shirtdesc'] = ;
私はそれは以下のように値を表示したい:
$ruequip['shirtname'] = shirt;
$ruequip['shirtdesc'] = hello_shirt;
この問題を解決するために、どのように?私のDB::query
機能は、それが許可することはできませんDB::query(SELECT * FROM xxxx (SELECT * FROM))
、2選択内に1 DB::query
、システムは安全性の問題で拒否されます。
ありがとうございます。あなたはCASE EXPRESSION
代わりに、左3の加入を使用して、条件付き集計でこれを行うことができます
申し訳ありません、私の 'DB :: query'関数は安全性の問題のために2つの' select * from'関数を許可していません –
@SweeHongなぜあなたはそれを自分のものでしたか?とにかく今試してみてください。 – sagi