mysql - JOIN 字段不等于值的表

标签 mysql join left-join

我有这个查询:

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/

相关文章:

linq - 左外连接在 LINQPad 中工作(使用 EF 4.3 连接),但在应用程序中失败

javascript - 错误lib sprintf nodejs restify mysql

mysql - MATCH AGAINST 中的多个列

php - Mysql查询总是返回true

pandas - 根据条件合并两个数据框并获取id

mysql - sql:使用同一键左连接多表

php - Pear 无法在共享主机上发送电子邮件

sql - 在 Apache Pig 中计算连接表中的总和

php - 尝试简化代码以获取 2 个表的结果,不包括表 1 中的一些结果和表 2 中的一些结果

mysql - 没有数据的sql计数查询