我确信如果我知道要使用正确的词语,这将很容易谷歌,但我已经尝试过但没有想出任何东西:道歉,如果这是一个常见的问题,那么。
我有一个表,列出了一组记录,可以是4种类型之一。
TABLE_1:
+-------+------------+------+
| id | value | type |
+-------+------------+------+
| 1 | x | 1 |
| 2 | y | 1 |
| 3 | z | 2 |
| 4 | a | 3 |
+-------+------------+------+
我有另一个表引用该表的id并存储数据
TABLE_2 :
+-------+------------+------+
| id | table_1_id |value |
+-------+------------+------+
| 1 | 4 | A |
| 2 | 2 | B |
| 3 | 3 | C |
| 4 | 2 | D |
+-------+------------+------+
我想写一个影响的查询:
"查找表1中类型1的所有记录,记录这些记录的ID,并找到表2中' table_1_id'的所有记录。它匹配那组ID中的一个。"
在上面非常过于简单的表示例中,该示例将导致查询返回表2中的ID为2和4的记录
答案 0 :(得分:2)
听起来像是在寻找IN
:
select *
from table2
where table_1_id in (select id from table1 where type = 1)
或许你可以JOIN
表:
select t2.*
from table2 t2
join table1 t1 on t2.table_1_id = t1.id
where t1.type = 1
加入表格可能会导致重复记录。取决于您的需求。
答案 1 :(得分:1)
SELECT t1.value,t1.type,t2.value FROM table1 t1,table2 t2 WHERE t1.id = t2.table_1_id AND t1.type = 1;