如果连接字段为空,则Mysql-Query不会给出结果

时间:2015-04-21 16:24:07

标签: php mysql

我有2张桌子,需要加入他们。如果在inventar_pool上存储了值,那么一切都很好。 但如果任何字段为空,则它们的查询也是空的。

我的问题是,我仍然需要查询,但字段为空。

我的疑问:

mysqli_query($coni,"SELECT strais.ean, bezeichnung, art, marker, stammkost FROM inventar2 JOIN strais.inventar_pool ON (strais.inventar2.ean = strais.inventar_pool.ean) WHERE ean='$ean'");

同样,如果在表右边(inventar_pool)中设置的值,则查询给出结果(此处为10,20,40)。

如果值为空(ean 30和50),结果也为空。

可以在表inventar_pool中使用或不使用值查询吗?

                SERVER
    database_1          database_1      
    table 'inventar2'      table 'inventar_pool'
+----+--------------+   +----+--------------+----------+
| ean | name        |   |ean | stammkost    |art|marker|
+----+--------------+   +----+--------------+----------+
| 10 | name1        |   | 10 | 100          | F | P    | 
| 20 | name2        |   | 20 | 255          | F | P    |
| 30 | name3        |   | 30 |              |   |      | 
| 40 | name4        |   | 40 | 350          | F | P    |
| 50 | name5        |   | 50 |              |   |      |
+----+--------------+   +----+--------------+----------+

2 个答案:

答案 0 :(得分:2)

是将内部联接更改为left join

SELECT 
strais.ean, 
bezeichnung, 
art, 
marker, 
stammkost 
FROM inventar2 left join strais.inventar_pool 
ON strais.inventar2.ean = strais.inventar_pool.ean
WHERE strais.ean='$ean'

但要确保病情  WHERE ean='$ean'您在左表中有数据

答案 1 :(得分:1)

在这种情况下不要使用JOIN,而是LEFT JOIN。