我们cardID
在查询后返回了一个 's 列表,这些cardID
's 属于两个表Student
和Personnel
。那么我怎样才能加入那些' ' cardID
''''''' ' ''''''''''''''''''''Student
Personnel
Student
Personnel
cardID
人员表:
PERSONNELID NUMBER(9,0)
PERSONNELNAME VARCHAR2(20)
PERSONNELSURNAME VARCHAR2(20)
PERSONNELJOB VARCHAR2(40)
PERSONNELCARDID NUMBER(4,0)
学生表:
STUDENTID NUMBER(9,0)
STUDENTNAME VARCHAR2(20)
STUDENTSURNAME VARCHAR2(20)
STUDENTDEPT VARCHAR2(40)
STUDENTFACULTY VARCHAR2(20)
STUDENTCARDID NUMBER(4,0)
卡ID表
CARDID NUMBER(4,0)
USERTYPE VARCHAR2(20)
CHARGE NUMBER(3,2)
CREDIT NUMBER(4,2)
支付设备表:
ORDERNO NUMBER
PAYDEVIP NUMBER(8,0)
PAYDEVDATE DATE No
PAYDEVTIME VARCHAR2(8)
CHARGEDCARDID NUMBER(9,0)
MEALTYPE VARCHAR2(10)
我试图返回 2012 年 12 月 27 日在自助餐厅用餐的前 10 人的姓名和姓氏
SELECT C.CARDID
FROM CARD C, PAYMENTDEVICE P
WHERE P.ORDERNO
BETWEEN (SELECT MIN(ORDERNO)
FROM PAYMENTDEVICE
WHERE PAYDEVDATE='27/12/2012') AND (SELECT MIN(ORDERNO)
FROM PAYMENTDEVICE
WHERE PAYDEVDATE='27/12/2012')+10 AND C.CARDID=P.CHARGEDCARDID;
我们orderNo
不是每天都重置,而是不断增加,所以我们找到了orderNo
当天的最小值并将这个值加 10,以在这些订单号之间找到当天吃的前 10 个人。
那么从这个查询返回什么:
CARDID
1005
1000
1002
1003
1009
2000
2001
1007
2002
1004
1006
其中一些cardId(以1开头)是studentCardId
,其中一些(以2开头)是PersonnelCardId
。那么我怎样才能匹配和写出相应的名字呢?