2012-09-01 87 views
2

我有3个表,并希望做出正确的查看他们的SQL查询。2 JOINS MYSQL和LIMIT 1

1)Zakaz

id | Comment 

2.)托瓦尔

id | id_clients | zakaz 

3.)用户

id | name 

它们连接为:

zakaz.id = tovar.zakaz 
tovar.id_clients = users.id 

我希望看到

zakaz.id | users.name 

但我想只限制每zakaz 1串,所以我所做的:

SELECT zakaz.id, zakaz.comment, tovar.id_clients 
    FROM zakaz 
    JOIN tovar ON zakaz.id = tovar.zakaz 
GROUP BY zakaz.id 

,然后我想加入的用户,但它不工作

SELECT zakaz.id, zakaz.comment, tovar.id_clients, users.name 
    FROM zakaz 
    JOIN tovar ON zakaz.id = tovar.zakaz 
    GROUP BY zakaz.id 
JOIN users ON users.id = tovar.id_clients 

回答

3

它会显示最新的ID Zakaz

SELECT a.name, c.id 
FROM Users a 
      INNER JOIN 
      (
       SELECT id_clients, zakaz, MAX(id) maxID 
       FROM Tovar 
       GROUP BY id_clients, zakaz 
      ) d 
       ON d.id_clients = a.id 
      INNER JOIN Zakaz c 
       ON d.zakaz = c.id