我试图加入两个表,并从右表中拉出多个记录,并将它们合并为一行。我为它做了一个SQL小提琴。我不积极,我的方法是正确的,但它是最接近的。理想情况下,查询应显示两条线: 波西 - A - 1和 咖喱 - C - 1 Kaep应该出,因为他有0SQL查询联盟
感谢您寻找。 SQL Fiddle
下面是描述的相关细节:
2表格提供了一个人,一个登记。注册时注册时每个人的选择都有行(即注册类型和是/否回答)。 regtype和yesno条目都会切换,让我知道该记录何时被存储。我想知道Person的详细信息和他们的RegistrationType以及是否为YesNoEntry选择了Yes。
下面是表的结构和一些虚拟刀片:
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