我的mySQL查询有问题。
表 A 是这样的:
表格 B 是:
我需要通过搜索 B.user 从查询中找到value_that_i_need。 但是我不需要A.user的值,我需要表A中的所有值,它们具有与B.user匹配的相同A.id(在表A中)。
因此,我需要所有唯一的ID(其中有 B.user = A.user ),并在表A中按A.id搜索它们。
我要避免2个不同的查询!已经尝试了其他方法JOIN,对我没有任何帮助。
编辑
好的,我想用最简单的方式解释这个问题。
I have this table:
+---------+------------+
| id_user | another_id |
+---------+------------+
id_user -> unique id for each user
another_id -> an id related to something like a group
another_id对更多用户而言可以相同,但是我只需要接受属于同一组的用户。 因此,我将必须检查我的组(通过搜索我的id_user),然后我必须查看具有相同的another_id的所有用户。
问题是,如果我查询这样的内容:
SELECT * FROM table0 AS t0, something_like_groups AS slg
JOIN user_inside_group as uig ON slg.id_group=uig.group_id AND slg.id_user='my_user_id'
WHERE slg.id='id_group' AND t0.user_id=uig.user_id
实际上,我必须加入3个表,但问题是我需要在我所在的位置找到“组”,并获取有关同一组内所有用户的所有信息。 (无需其他查询)
答案 0 :(得分:0)
也许您只想基于b用户找到最小id,然后从a中获得所有匹配的行。例如
drop table if exists t,t1;
create table t( id int,user varchar(10));
create table t1( id int,user varchar(10));
insert into t values
(1,'aaa'),(1,'bbb'),(2,'ccc');
insert into t1 values
(1,'bbb'),(2,'ccc')
;
select t.id,t.user
from t
join
(
select t1.user,min(t.id) minid
from t1
join t on t.user = t1.user
group by t1.user
) s
on t.id = s.minid;
+------+------+
| id | user |
+------+------+
| 1 | aaa |
| 1 | bbb |
| 2 | ccc |
+------+------+
3 rows in set (0.00 sec)