2014-12-01 54 views
0

我正在寫一個數據庫使用mysql,我試圖顯示多個使用子查詢的列,但它給了我一個錯誤「錯誤1241(21000):操作數應該包含1列」。顯示多列mysql

用於查詢的代碼如下所示:

SELECT P_SSN, Name, Blood_Type 
FROM PATIENT 
WHERE P_SSN IN 
(SELECT P_SSN, ID 
    FROM BLOOD_POUCH 
    WHERE Blood_Type LIKE 'A'); 

或JOIN

SELECT P_SSN, Name, Blood_Type, ID 
FROM PATIENT, BLOOD_POUCH 
WHERE PATIENT.P_SSN = BLOOD_POUCH.P_SSN 
AND Blood_type LIKE 'A'; 

我的表是:

病人 - P_SSN,名稱,Blood_Type,... .. // P_SSN PK

BLOOD_POUCH - ID,Blood_Type,....,P_SSN // ID PK,P_SSN FK

關於如何顯示ID的任何想法?如果我只留下P_SSN,它會起作用,但我希望BLOOD_POUCH表也顯示一些信息。

+1

檢查連接表 – 2014-12-01 20:57:43

回答

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%'; 
+0

這個查詢會給我一個結果,而不ID列。 – Nik 2014-12-01 21:06:30

+0

已編輯。你能檢查嗎? – 2014-12-01 21:09:35

+0

完美!謝謝。 – Nik 2014-12-01 21:19:18

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%';