Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql if子句返回多行_Mysql_If Statement - Fatal编程技术网

Mysql if子句返回多行

Mysql if子句返回多行,mysql,if-statement,Mysql,If Statement,我需要使用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

我需要使用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||
++========++======++         ++========++========++        ++========++=======++
摘要

所以
如果bagian=dokter
,它将加入表
bsl_ruang
mr_ranap_dokter
并获得
ruper

如果bagian=perawat,它将加入表
m\u单元
muser\u tdinas
,并获得
nama


但if子句只能返回一个数据,还有其他方法吗?请注意,我无法更改我的数据库

也许这不是最好的解决方案,但我决定使用一个过程来解决我的问题,以下是我的过程

CREATE DEFINER=`root`@`%` PROCEDURE `GetRuperRanap`(lIdUser Varchar(12))
BEGIN
     Declare lBagian VarChar(20);
     SELECT bagian into lBagian FROM `muser` where id_user = lIdUser;
     if lBagian='DOKTER' then
         SELECT distinct b.ruper as ruper from bsl_ruang b join mr_ranap_dokter d on (b.noregis=d.noregis) where d.dokter = lIdUser;
     else
         SELECT u.nama as ruper FROM m_unit u join muser_tdinas t on(t.unit=u.unit) where id_user = lIdUser;
     end if;
END;
我只需要打电话询问一下,希望能有所帮助