[英]Mysql table join records from 2 tables but get all records even the ones with empty fields
I have 2 tables and want to get all records from table ' klanten ' and where the ' automaten ' records are matching bedrijfs_id . 我有2个表,想要从表' klanten '中获取所有记录,并且其中' automaten '记录与bedrijfs_id匹配。
this is what i have so far. 这是我到目前为止所拥有的。
$sql = "
SELECT
`automaten`.automaat,
`automaten`.th_nummer,
`klanten`.bedrijf,
`klanten`.bedrijfs_id,
`klanten`.plaats
FROM klanten, automaten
WHERE (`klanten`.bedrijfs_id = `automaten`.bedrijfs_id)
ORDER BY `klanten`.bedrijf ASC
";
resultin in: 结果:
+------------+-------------+-----------+--from automaten--+------------+
153509 | Amigo | Smilde | Hot Rocks | 6170155 |
153509 | Amigo | Smilde | Cash Attack | 6410031 |
153512 | Boekanier | Steenwijk | Red Hot Active | 6980051 |
153512 | Boekanier | Steenwijk | Turboplay | 6550298 |
-----------------------------------------------------------------------
bedrijfs_id | bedrijf | plaats | automaat | th_nummer |
+------------+-------------+-----------+------------------+------------+
table klanten bedrijf bedrijfs_id plaats adres telefoon etc. 表klanten bedrijf bedrijfs_id plaats adre telefoon等
table automaten bedrijfs_id automaat th_nummer 表automaten bedrijfs_id 自动机th_nummer
so I want to get even the records without any automaat field . 所以我想获得没有任何automaat字段的记录。 (which has to be filled in then
(然后必须填写
Comment: improved formatting, corrected spelling Mysql table join records from 2 tables but get all records even the ones with empty fields I have 2 tables and want to get all records from table 'klanten' and where the 'automaten' records are matching bedrijfs_id. 注释:改进了格式,纠正了拼写错误Mysql表从2个表中加入了记录,但获得了所有记录,即使是那些包含空字段的记录,我也有2个表,并且希望从表'klanten'中获得所有记录,并且'automaten'记录与bedrijfs_id匹配。
Still no working solution :( 仍然没有有效的解决方案:(
I think you meant to do a LEFT JOIN
instead like 我想你想做一个
LEFT JOIN
而不是
SELECT
`automaten`.automaat,
`automaten`.th_nummer,
`klanten`.bedrijf,
`klanten`.bedrijfs_id,
`klanten`.plaats
FROM klanten
LEFT JOIN automaten
ON `klanten`.bedrijfs_id = `automaten`.bedrijfs_id
ORDER BY `klanten`.bedrijf
This should be your solution: 这应该是您的解决方案:
$sql = "
SELECT
`automaten`.automaat,
`automaten`.th_nummer,
`klanten`.bedrijf,
`klanten`.bedrijfs_id,
`klanten`.plaats
FROM klanten
LEFT JOIN automaten
ON `klanten`.bedrijfs_id = `automaten`.bedrijfs_id
ORDER BY `klanten`.bedrijf ASC
";
Regards V 关于V
You have to use a left outer join: 您必须使用左外部联接:
http://dev.mysql.com/doc/refman/5.0/en/join.html http://dev.mysql.com/doc/refman/5.0/en/join.html
Your query will look like: 您的查询将如下所示:
SELECT
GROUP_CONCAT(`automaten`.automaat),
`automaten`.th_nummer,
`klanten`.bedrijf,
`klanten`.bedrijfs_id,
`klanten`.plaats
FROM klanten
LEFT OUTER JOIN automaten
ON `klanten`.bedrijfs_id = `automaten`.bedrijfs_id
GROUP BY bedrijfs_id,bedrijf,plaats
ORDER BY `klanten`.bedrijf ASC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.