if 句を使用してテーブルからデータを取得する必要があります。これは、私がやろうとしていることの例です。
select if (condition='example',
(/*query1(return more than one row)*/),
(/*query2(return more than one row)*/) as data from table1 where iduser='1'
私の完全なクエリ:
SELECT
if(bagian='DOKTER',
(SELECT b.ruper
from bsl_ruang b
join mr_ranap_dokter d
on (b.noregis=d.noregis)
where d.dokter = '999999'),
(SELECT u.nama
FROM m_unit u
join muser_tdinas t
on(t.unit=u.unit)
where id_user = '999999')) as ruper
FROM `muser` where id_user = '999999'
私のテーブル;
bsl_ruang mr_ranap_dokter
++========++======++ ++========++========++
||noregis ||ruper || ||dokter ||noregis ||
++========++======++ ++========++========++
||10000000||ruper1|| ||9999999 ||10000000||
||10000001||ruper2|| ||9999999 ||10000001||
++========++======++ ++========++========++
m_unit muser_tdinas m_user
++========++======++ ++========++========++ ++========++=======++
||unit ||nama || ||id_user ||unit || ||id_user ||bagian ||
++========++======++ ++========++========++ ++========++=======++
||00001 ||ruper1|| ||8888888 ||00001 || ||9999999 ||DOKTER ||
||00002 ||ruper2|| ||8888888 ||00002 || ||8888888 ||PERAWAT||
++========++======++ ++========++========++ ++========++=======++
まとめ
そのためif bagian=dokter
、テーブルに参加bsl_ruang
しmr_ranap_dokter
て取得しますruper
とif bagian=perawat
、テーブルに参加m_unit
しmuser_tdinas
、取得しますnama
しかし、句が1つのデータしか返すことができない場合、これを行う他の方法はありますか? データベースを変更できないことに注意してください