Mysql表连接来自2个表的记录,但获得所有记录甚至是具有空字段的记录

时间:2014-11-13 13:15:05

标签: php mysql

我有两张桌子,想要从表格中获取所有记录' klanten ' ' 自动化 '记录匹配 bedrijfs_id

这是我到目前为止所做的。

$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 
";

结果:

+------------+-------------+-----------+--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 |
+------------+-------------+-----------+------------------+------------+
表克兰滕 bedrijf bedrijfs_id 国家地点 ADRES telefoon 等

自动 bedrijfs_id automaat th_nummer

所以我想在没有任何自动化字段的情况下获得记录。 (必须填写) 评论:改进格式,更正拼写 Mysql表连接来自2个表的记录,但获得所有记录甚至是具有空字段的记录 我有2张桌子,想要从表格中获取所有记录' klanten'以及'自动化'记录匹配bedrijfs_id。

仍然没有可行的解决方案:(

3 个答案:

答案 0 :(得分:2)

我认为你打算做一个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

答案 1 :(得分:0)

这应该是你的解决方案:

$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 
 ";

此致 V

答案 2 :(得分:0)

您必须使用左外连接:

http://dev.mysql.com/doc/refman/5.0/en/join.html

您的查询将如下所示:

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