返回mysql所有行

时间:2017-09-25 12:12:16

标签: mysql where

我有这张表:



tbl_1
+---+--------+
|ID | NAME   |
+---+--------+
| 1 | Name_1 |
| 2 | Name_2 |
| 3 | Name_3 |
+---+--------+

tbl_2
+---+----------+---------+
|ID | MENTIUNI | ID_NAME |
+---+----------+---------+
| 1 | abc      |   1     |
| 2 | abcd     |   2     |
| 3 | abc      |   1     |
| 4 | abcd     |   1     |
| 5 | abc      |   2     |
| 6 | abcd     |   3     |
+---+----------+---------+

SELECT
	tbl_1.NAME,
	count(tbl_2.MENTIUNI) AS NR_MENTIUNI

FROM tbl_1

LEFT JOIN tbl_2 ON tbl_1
	tbl_1.ID = tbl_2.ID_NAME

WHERE tbl_2.MENTIUNI = 'abc'




在tbl_2 sub conditia tbl_2.MENTIUNI =' abc'

Cum pot afisa toate id-urile din tbl_1 chiar daca am conditie in where?

以上查询从tbl_1.ID中选择我,仅在条件tbl_2.MENTIUNI =' abc'

条件下从tbl_2中找到

即使我的条件在哪里,如何在tbl_1中显示所有ID?



+------+-------------+
| NAME | NR_MENTIUNI |
+------+-------------+
|Name_1|      2      |
|Name_2|      1      |
|Name_3|      0      |
+------+-------------+




谢谢!

1 个答案:

答案 0 :(得分:1)

将条件从整个查询移动到SELECT tbl_1.NAME, count(tbl_2.MENTIUNI) AS NR_MENTIUNI FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.ID = tbl_2.ID_NAME AND tbl_2.MENTIUNI = 'abc' 子句,因此它只过滤要连接的第二个表中的记录。像这样:

gradient = np.gradient(self.image)
gradient_norm = np.sqrt(sum(x**2 for x gradient))
for dim in gradient:
    np.divide(dim, gradient_norm, out=dim)
    np.nan_to_num(dim, copy=False)