我想从表A中选择UserId=1
和表B UserName=xxx
的行。
如果A和B中的行相同,我们可以使用group。
表A
Session UserId
-----------------
1 1
2 2
表B
Session Username
-------------------
1 xxx
11 xxx
12 xxx
用户表
UserId Username
------------------
1 xxx
现在我想从表where userid = 1
和表b where username = xxx
获取行。如果a和b中的会话相同,我们可以对其进行分组。
Session
==========
1
11
12
答案 0 :(得分:2)
现在我想从表a获取userid = 1的行和表b中的用户名= xxx的行。如果a和b中的会话相同,我们可以对其进行分组。
听起来,我要求您从两个表中请求过滤的union
值的session
,并且如您所希望的那样,您需要union
而不是union all
union all
union
实际上是一个比select session from table_a where userid = 1
union
select session from table_b where username = xxx
更常见的要求:
{{1}}
答案 1 :(得分:1)
以下是SQL Server的TSql
。另请尝试了解table JOIN
。以下是some good examples
SELECT A.Session, A.UserId
FROM A JOIN B ON A.Session = B.Session --Joining A and B using Session here
WHERE A.UserId = 1 AND B.Username = 'xxx'
答案 2 :(得分:1)
试试这个, 抱歉,如果有任何语法错误。
SELECT A.UserId, B.Username FROM A LEFT JOIN B ON A.Session= B.Session GROUP BY A.Session;
它将从表格中检索与会话匹配的所有记录,即A和B.
现在,在现有查询中包含附加条件。像这样......
SELECT A.UserId, B.Username FROM A LEFT JOIN B ON A.Session= B.Session
WHERE A.UserId = 1 AND B.Username = 'xxx' GROUP BY A.Session;
希望它会对你有所帮助。谢谢。 !!
答案 3 :(得分:-1)
Mysql有一种方法可以做到这一点。 Check out this
我会做的最好:
SELECT `table1`.`column`, `table2`.`column` FROM `table1`, `table2` WHERE conditon