저는 MySQL에서 db를 작업 중이며 한 행의 소수 테이블에서 데이터를 필요로합니다. 그것은 상대 데이터베이스와 연결 문제입니다 :서브 쿼리는 MySQL 프로 시저에서 두 개 이상의 행을 반환합니다.
CREATE TABLE pet (id INT, name VARCHAR(20));
insert into pet values (1,"Rufus");
insert into pet values (2,"Bali");
insert into pet values (3,"Lolo");
CREATE TABLE own (id INT, own_name VARCHAR(20), own_color VARCHAR(20));
insert into own values (1,"Me", "Red");
insert into own values (2,"Other owners" ,"Green");
CREATE TABLE pet_owner (id INT, id_pet INT, id_own INT);
insert into pet_owner values (1, 1, 1);
insert into pet_owner values (2, 2, 1);
insert into pet_owner values (3, 3, 2);
DROP procedure if exists `pet`;
DELIMITER $$
CREATE procedure `pet`()
BEGIN
set @param = 1;
select
a.own_color as 'color',
(select id_pet from pet_owner where id_own = @param) as 'pets'
from own as a where a.id = @param;
END$$
call pet;
하위 쿼리가 반환 이상 1 행
(모든 id_pet 다른 컬럼에있을 수 있습니다)
저장 프로 시저가 의도 한 것이 무엇인지, 또는 그 안에있는 쿼리의 예상 출력 형식은 확실하지 않습니다. 현재 주 쿼리와 부질의 사이에는 상관 관계가 없습니다 - 의도적입니까? –