-1

Hello i try to run this query but this error come up

#1241 - Operand should contain 1 column(s)

here is the code :

SELECT 

(SELECT kk.namakk, anggkk.nama AS istri
FROM kk
JOIN anggkk
USING ( idkk ) 
WHERE anggkk.hubungan =  "istri"),

(SELECT anggkk.nama AS anak, YEAR( CURDATE( ) ) - YEAR( anggkk.ttl ) AS usia_anak
FROM anggkk
JOIN kk
USING ( idkk ) 
WHERE anggkk.hubungan =  "anak")

FROM kk, anggkk
GROUP BY kk.idkk

where is my error? thanks for the help!

Bill Karwin
  • 538,548
  • 86
  • 673
  • 828
  • This query doesn't make much sense. I would suggest that you ask another question with sample data and desired results. Perhaps someone can help you write a correct query. – Gordon Linoff May 24 '14 at 10:48

1 Answers1

0

Operand should contain 1 column(s) , means you have many columns returned in your subqueries.

you need to add limit 1 to be just one column like that

   SELECT 

 (SELECT kk.namakk, anggkk.nama AS istri
 FROM kk
 JOIN anggkk
 USING ( idkk ) 
 WHERE anggkk.hubungan =  "istri"
 LIMIT 1),

 (SELECT anggkk.nama AS anak, YEAR( CURDATE( ) ) - YEAR( anggkk.ttl ) AS usia_anak
 FROM anggkk
 JOIN kk
 USING ( idkk ) 
 WHERE anggkk.hubungan =  "anak"
 LIMIT 1)

 FROM kk, anggkk
 GROUP BY kk.idkk

or you have to be more specified on what you selecting to be one column

echo_Me
  • 37,078
  • 5
  • 58
  • 78