我正在使用mysql编写数据库,我正在尝试使用子查询显示多个列,但它给出了一个错误&#34; ERROR 1241(21000):操作数应包含1列&#34;。< / p>
查询的代码如下所示:
SELECT P_SSN, Name, Blood_Type
FROM PATIENT
WHERE P_SSN IN
(SELECT P_SSN, ID
FROM BLOOD_POUCH
WHERE Blood_Type LIKE 'A');
或在加入
SELECT P_SSN, Name, Blood_Type, ID
FROM PATIENT, BLOOD_POUCH
WHERE PATIENT.P_SSN = BLOOD_POUCH.P_SSN
AND Blood_type LIKE 'A';
我的表是:
PATIENT - P_SSN,姓名,Blood_Type,..... // P_SSN PK
BLOOD_POUCH - ID,Blood_Type,....,P_SSN // ID PK,P_SSN FK
关于如何显示ID的任何想法?如果我只留下P_SSN它可以工作,但我也喜欢BLOOD_POUCH表来显示一些信息。
答案 0 :(得分:0)
这会给你想要的结果:
SELECT P.P_SSN, P.NAME, P.BLOOD_TYPE, B.ID
FROM PATIENT P JOIN BLOOD_POUCH B
ON P.P_SSN = B.P_SSN
WHERE B.BLOOD_TYPE LIKE '%A%';
答案 1 :(得分:0)
SELECT A.P_SSN, A.NAME, A.BLOOD_TYPE, B.ID
FROM PATIENT A,BLOOD_POUCH B
WHERE A.P_SSN = B.P_SSN
AND B.BLOOD_TYPE LIKE '%A%';