MySQL查询 - 从一个表中连接不同数量的行

时间:2016-10-07 03:53:29

标签: mysql join

我四处寻找类似的问题,但如果它存在,我还没找到。

我不相信这是重复的,因为我试图从TableB中获取多行并与tableA中的单行组合,这不是另一个问题中显示的内容。

请考虑以下表格。

|TableA       |
|id     value1|
|1     |3     |
|2     |10    |
|3     |10    |
|4     |6     |
|5     |10    |

|TableB              |
|id     Aid    value2|
|1     |1     |14    |
|2     |1     |93    |
|3     |2     |30    |
|4     |3     |12    |
|5     |3     |62    |
|6     |3     |2     |
|7     |4     |2     |
|8     |4     |29    |
|9     |5     |50    |

我希望每行FROM TableA WHERE value1 = 10,但我也希望它们与TableB中具有这些TableA行的id作为其Aid值的所有行一起加入。

基本上,我想回到3行:TableA第2,3行和第5行,其中第1行与TableB的第3行连接,第2行与TableB的第4行,第5行和第6行连接,第3行连接加入TableB的第9行。

我该怎么做呢?甚至可以使用一个查询吗?如果有可能,结果会是什么?

这就是我得到的......

SELECT a.*, b.* FROM TableA AS a JOIN TableB AS b ON a.id=b.Aid WHERE a.value1=10

3 个答案:

答案 0 :(得分:0)

r := regexp.MustCompile(`\((.*?)\)`)

答案 1 :(得分:0)

你的意思是

SELECT a.*, b.* 
FROM TableA AS a 
JOIN TableB AS b ON a.id = b.Aid 
WHERE a.value1 = 10

答案 2 :(得分:0)

最好使用单词INNER JOIN,这样当您再次查看此代码时,您可以清楚使用哪种连接

SELECT a.*, b.* FROM TableA AS a INNER JOIN TableB AS b ON a.id=b.Aid
WHERE a.value1=10 

我为解决你的问题而添加的最后一点