Я пытаюсь объединить две таблицы и вытащить несколько записей из правой таблицы и объединить их в одну строку. Я сделал для него скрипт SQL. Я не уверен, что мой подход правильный, но он самый близкий. В идеале запрос должен показать две строки для: Поузи - A - 1 и Curry - C - 1. Kaep должен быть вне потому что он имеет 0.SQL Query Union
Спасибо для смотреть. SQL Fiddle
Вот соответствующие детали, описанные:
2 стола для человека и регистрации. При регистрации регистрируются строки для каждого из выбранных лиц (т. Е. Тип регистрации и ответ «да/нет»). Как записи regtype, так и yesno имеют переключатели, чтобы сообщить мне, когда эта запись хранится. Я хочу знать детали Person в сочетании с их RegistrationType, и если они выбрали Yes для YesNoEntry.
Вот структура таблицы и некоторые фиктивные вставки:
CREATE TABLE RegPerson (
RegPersonID INT,
FirstName VARCHAR(32),
LastName VARCHAR(32),
Company VARCHAR(32),
Dummy1 INT
);
CREATE TABLE Reg (
RegID INT,
RegPersonID INT,
RegItemID INT,
RefNumber INT,
RegistrationToggle BINARY,
RegistrationType VARCHAR(32),
YesNoToggle BINARY,
YesNoEntry BINARY,
Dummy2 VARCHAR(32),
Dummy3 BINARY
);
INSERT INTO RegPerson
SELECT 1, 'Buster', 'Posey', 'Giants', 456
UNION ALL SELECT 2, 'Colin', 'Kaepernick', '49ers', 765
UNION ALL SELECT 3, 'Stephen', 'Curry', 'Warriors', 321;
INSERT INTO Reg
SELECT 1, 1, 1, 98765, 0, '', 0, 0, 'asdf', 1
UNION ALL SELECT 2, 1, 2, 98765, 1, 'A', 0, 0, 'qwer', 0
UNION ALL SELECT 3, 1, 3, 98765, 0, '', 1, 1, 'rtyu', 1
UNION ALL SELECT 4, 2, 1, 12345, 0, '', 0, 0, 'jkl;', 0
UNION ALL SELECT 5, 2, 2, 12345, 1, 'B', 0, 0, 'cvnb', 1
UNION ALL SELECT 6, 2, 3, 12345, 0, '', 1, 0, 'zxcv', 0
UNION ALL SELECT 7, 3, 1, 56789, 0, '', 0, 0, 'poiu', 0
UNION ALL SELECT 8, 3, 2, 56789, 1, 'C', 0, 0, 'cvnb', 1
UNION ALL SELECT 9, 3, 3, 56789, 0, '', 1, 1, 'zxcv', 0;
Пожалуйста, добавьте всю релевантную информацию в вопрос. Если SQLFIddle недоступен, ваш вопрос бесполезен. –
Понял, спасибо. Просто обновлен с подробностями. – user2634997