我有这个查询:
SELECT `A`.*, `LNK`.`act_id`, `LNK`.`remaining`, `U`.`username` as U_username
FROM (`anagrafiche` as A)
LEFT JOIN `lnk_ana-act` AS LNK ON `A`.`id` = `LNK`.`ana_id`
LEFT JOIN `users` AS U ON `A`.`uid` = `U`.`id`
WHERE (`LNK`.`act_id` != 57 OR `LNK`.`act_id` IS NULL) AND A.closed = '0'
LIMIT 10
此查询选择 act_id 不为 57 的所有字段,导致第一个表“anagrafiche”出现多个重复项。这样做显然是错误的,这种情况我该怎么办?
谢谢
编辑说明。
无论有多少 lnk_ana-act 记录,我只想要第一个表的一条记录。更准确地说,lnk_ana-act 表中有数千条记录不等于 act_id
!= 57,但我只需要“anagrafiche”表的一条唯一记录,无论该表中有多少条记录连接表
最佳答案
如果我明白你需要什么。试试这个:
SELECT A.*, LNK.act_id, LNK.remaining, U.username as U_username
FROM anagrafiche A LEFT JOIN lnk_ana-act LNK
ON A.id = LNK.ana_id
LEFT JOIN users U
ON A.uid = U.id
WHERE LNK.act_id <> 57 AND A.closed = '0'
GROUP BY A.id
LIMIT 10
关于mysql - JOIN 字段不等于值的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8166573/