我有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 | | | |
+----+--------------+ +----+--------------+----------+
答案 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。