mysql - 如何在 MySQL 中限制查询中的字段

标签 mysql sql

我有两个这样的表:

TableOne(id, name, attr)
{
    1, Mark, A
    2, Peter, B
    3, John, A
    4, Mary, A
}
TableTwo(id, id_TableOne, path)
{
    1, 1, one.png
    2, 1, two.png
    3, 1, three.png
    4, 3, foo.png
    5, 3, bar.png
}

SELECT TableOne.name, TableTwo.path
FROM TableOne, TableTwo
WHERE TableOne.attr = 'A'
AND TableOne.id = TableTwo.id_TableOne

That outputs:

{
    Mark, one.png
    Mark, two.png
    Mark, three.png
    John, foo.png
    John, bar.png
}

我想限制子查询,每个名称只显示一个路径。 所需的输出将是:

{
    Mark, one.png
    John, foo.png
    Mary, NULL
}

我尝试做 LIMITS,并在另一个中写一个 select,但我没有得到我想要的结果,我还读到一些让我担心的东西

"MySQL does not support LIMIT in subqueries for Un Certain subquery operators"

来自 http://dev.mysql.com/doc/refman/5.0/en/subquery-restrictions.html

谁能指导我解决我的问题?请。

最佳答案

试试这个:

SELECT TableOne.name, MIN(TableTwo.path)
FROM TableOne LEFT JOIN TableTwo ON (TableOne.id = TableTwo.id_TableOne)
WHERE TableOne.attr = 'A'
GROUP BY TableOne.name

关于mysql - 如何在 MySQL 中限制查询中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723221/

相关文章:

mysql - 数字列上基于函数的索引

sql - varchar(255) v tinyblob v tinytext

sql - 找出哪一列有特定的字符串并返回列号

php - Centos 7、PHP 7.2 通过 Apache2.4 拒绝权限

php - FatalThrowableError 调用未定义的函数 App\Console\Commands\getCNofDNn()

Mysql删除后代

sql - 在 SQL Server 中将时间间隔转换为十进制小时数

mysql - 创建表并在数据库浏览器中插入值(sqlite)

sql - 在 SQL Server 中,将 Text 列的所有值设置为 NULL 是否会减少数据库大小?

python - Django 复杂查询