Mysql 将同一表格中的两个选择合并为一个?
我试过工会,但它不起作用,它说#1221-工会和订单的用法不正确Mysql 将同一表格中的两个选择合并为一个?,mysql,sql,select,union,Mysql,Sql,Select,Union,我试过工会,但它不起作用,它说#1221-工会和订单的用法不正确 SELECT members.Name, friends.MemberNumber1 FROM friends INNER JOIN members ON friends.MemberNumber1= members.MemNo WHERE friends.MemberNumber2 LIKE 1 ORDER BY members.Name UNION SELECT members.Name, friends.MemberNu
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
ORDER BY members.Name
UNION
SELECT members.Name, friends.MemberNumber2
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1
ORDER BY members.Name
这两个查询本身都工作得很好,但我正在尝试将它们放在一个查询中,因为我希望在此之后在JSTL中对结果集进行“for each”。我还尝试为friends.MemberNumber1和friends.MemberNumber2创建别名,但没有改变任何内容。也许还有一个更简单的问题,我只是没有看到。还是我绝对需要提出两个问题
谢谢您需要将
联合
放入子查询,然后订购整个东西
SELECT *
FROM (
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
UNION
SELECT members.Name, friends.MemberNumber2
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1) AS u
ORDER BY u.Name
您需要将
联合
放入子查询中,然后对整个内容进行排序
SELECT *
FROM (
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
UNION
SELECT members.Name, friends.MemberNumber2
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1) AS u
ORDER BY u.Name
您需要将
联合
放入子查询中,然后对整个内容进行排序
SELECT *
FROM (
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
UNION
SELECT members.Name, friends.MemberNumber2
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1) AS u
ORDER BY u.Name
您需要将
联合
放入子查询中,然后对整个内容进行排序
SELECT *
FROM (
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
UNION
SELECT members.Name, friends.MemberNumber2
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1) AS u
ORDER BY u.Name
您可以创建一个派生表,然后按顺序排序。 列名必须匹配。 我知道这个答案很接近Barmar的答案,但第二列的别名很重要。 您还可以查找UNION和UNION ALL之间的差异,我通常使用后者
SELECT Name , MemberNumber
FROM (
SELECT members.Name, friends.MemberNumber1 as MemberNumber
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
UNION ALL
SELECT members.Name, friends.MemberNumber2 as MemberNumber
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1) AS derived1
ORDER BY derived1.Name
您可以创建一个派生表,然后按顺序排序。 列名必须匹配。 我知道这个答案很接近Barmar的答案,但第二列的别名很重要。 您还可以查找UNION和UNION ALL之间的差异,我通常使用后者
SELECT Name , MemberNumber
FROM (
SELECT members.Name, friends.MemberNumber1 as MemberNumber
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
UNION ALL
SELECT members.Name, friends.MemberNumber2 as MemberNumber
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1) AS derived1
ORDER BY derived1.Name
您可以创建一个派生表,然后按顺序排序。 列名必须匹配。 我知道这个答案很接近Barmar的答案,但第二列的别名很重要。 您还可以查找UNION和UNION ALL之间的差异,我通常使用后者
SELECT Name , MemberNumber
FROM (
SELECT members.Name, friends.MemberNumber1 as MemberNumber
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
UNION ALL
SELECT members.Name, friends.MemberNumber2 as MemberNumber
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1) AS derived1
ORDER BY derived1.Name
您可以创建一个派生表,然后按顺序排序。 列名必须匹配。 我知道这个答案很接近Barmar的答案,但第二列的别名很重要。 您还可以查找UNION和UNION ALL之间的差异,我通常使用后者
SELECT Name , MemberNumber
FROM (
SELECT members.Name, friends.MemberNumber1 as MemberNumber
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1
UNION ALL
SELECT members.Name, friends.MemberNumber2 as MemberNumber
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1) AS derived1
ORDER BY derived1.Name
它还满足您的查询逻辑吗
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1 OR friends.[primarykey] IN (
SELECT friend.[primarykey]
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1
)
它还满足您的查询逻辑吗
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1 OR friends.[primarykey] IN (
SELECT friend.[primarykey]
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1
)
它还满足您的查询逻辑吗
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1 OR friends.[primarykey] IN (
SELECT friend.[primarykey]
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1
)
它还满足您的查询逻辑吗
SELECT members.Name, friends.MemberNumber1
FROM friends
INNER JOIN members ON friends.MemberNumber1= members.MemNo
WHERE friends.MemberNumber2 LIKE 1 OR friends.[primarykey] IN (
SELECT friend.[primarykey]
FROM friends
INNER JOIN members ON friends.MemberNumber2= members.MemNo
WHERE friends.MemberNumber1 LIKE 1
)
试试这个:
SELECT
*
FROM
(
SELECT
Name = members.Name,
MemberNumber = friends.MemberNumber1
FROM
friends
INNER JOIN
members
ON friends.MemberNumber1= members.MemNo
WHERE
friends.MemberNumber2 LIKE 1
UNION ALL
SELECT
Name = members.Name,
MemberNumber = friends.MemberNumber2
FROM
friends
INNER JOIN
members ON friends.MemberNumber2= members.MemNo
WHERE
friends.MemberNumber1 LIKE 1
) Unioned
ORDER BY
Unioned.Name
如果UNION ALL
出现问题,请尝试UNION
尝试以下操作:
SELECT
*
FROM
(
SELECT
Name = members.Name,
MemberNumber = friends.MemberNumber1
FROM
friends
INNER JOIN
members
ON friends.MemberNumber1= members.MemNo
WHERE
friends.MemberNumber2 LIKE 1
UNION ALL
SELECT
Name = members.Name,
MemberNumber = friends.MemberNumber2
FROM
friends
INNER JOIN
members ON friends.MemberNumber2= members.MemNo
WHERE
friends.MemberNumber1 LIKE 1
) Unioned
ORDER BY
Unioned.Name
如果UNION ALL
出现问题,请尝试UNION
尝试以下操作:
SELECT
*
FROM
(
SELECT
Name = members.Name,
MemberNumber = friends.MemberNumber1
FROM
friends
INNER JOIN
members
ON friends.MemberNumber1= members.MemNo
WHERE
friends.MemberNumber2 LIKE 1
UNION ALL
SELECT
Name = members.Name,
MemberNumber = friends.MemberNumber2
FROM
friends
INNER JOIN
members ON friends.MemberNumber2= members.MemNo
WHERE
friends.MemberNumber1 LIKE 1
) Unioned
ORDER BY
Unioned.Name
如果UNION ALL
出现问题,请尝试UNION
尝试以下操作:
SELECT
*
FROM
(
SELECT
Name = members.Name,
MemberNumber = friends.MemberNumber1
FROM
friends
INNER JOIN
members
ON friends.MemberNumber1= members.MemNo
WHERE
friends.MemberNumber2 LIKE 1
UNION ALL
SELECT
Name = members.Name,
MemberNumber = friends.MemberNumber2
FROM
friends
INNER JOIN
members ON friends.MemberNumber2= members.MemNo
WHERE
friends.MemberNumber1 LIKE 1
) Unioned
ORDER BY
Unioned.Name
如果
UNION ALL
出现问题,请尝试UNION
我想您最后只需要一份订单?或者使用parenthasisWow谢谢,我试着用括号,用一个orderby,但不能同时用这两个。。。现在可以了!谢谢。(我觉得很傻)警告说,如果我不给朋友起别名,这是行不通的。会员编号1和2我想你最后只需要一份订单?或者使用parenthasisWow谢谢,我试着用括号,用一个orderby,但不能同时用这两个。。。现在可以了!谢谢。(我觉得很傻)警告说,如果我不给朋友起别名,这是行不通的。会员编号1和2我想你最后只需要一份订单?或者使用parenthasisWow谢谢,我试着用括号,用一个orderby,但不能同时用这两个。。。现在可以了!谢谢。(我觉得很傻)警告说,如果我不给朋友起别名,这是行不通的。会员编号1和2我想你最后只需要一份订单?或者使用parenthasisWow谢谢,我试着用括号,用一个orderby,但不能同时用这两个。。。现在可以了!谢谢。(我觉得很傻)警告说,如果我不给朋友加上别名,这是行不通的