Mysql 从数据库表中获取类似行

Mysql 从数据库表中获取类似行,mysql,sql,sql-server,Mysql,Sql,Sql Server,朋友们好,我有下面的表格结构 报价表 我想访问特定“id”(quoteId)的所有类似引用(具有相同的作者id和类别id) 相似的引号是指该表中所有这些行的所有列都具有相同的类别id和相同的作者id。如果两个引号的作者相同且类别相同,则可以认为这两个引号相似。相同的作者id和类别id select q1.* from quotes q1 inner join (select author_id, category_id from

朋友们好,我有下面的表格结构 报价表

我想访问特定“id”(quoteId)的所有类似引用(具有相同的作者id和类别id)


相似的引号是指该表中所有这些行的所有列都具有相同的类别id和相同的作者id。如果两个引号的作者相同且类别相同,则可以认为这两个引号相似。

相同的作者id和类别id

select 
    q1.* 
from 
    quotes q1
inner join 
   (select
      author_id,
      category_id
    from 
        quotes
    where 
        _id = 1) q2
ON 
    q1.author_id = q2.author_id
AND 
    q1.category_id = q2.category_id
SELECT `related_quote`.*
FROM `quote` AS `main_quote`
LEFT JOIN `quote` AS `related_quote` USING(`author_id`, `category_id`)
WHERE `main_quote`.`_id` = QUOTE_ID
这将为您获取原始报价(即quote_ID),以及与之相关的所有内容

mysql> SELECT `related_quote`.*
    -> FROM `quote` AS `main_quote`
    -> LEFT JOIN `quote` AS `related_quote` USING(`author_id`, `category_id`)
    -> WHERE `main_quote`.`_id` = 1;
+------+----------------+-----------+-------------+
| _id  | content        | author_id | category_id |
+------+----------------+-----------+-------------+
|    1 | test           |         1 |           1 |
|    2 | test related   |         1 |           1 |
|    3 | test related 2 |         1 |           1 |
+------+----------------+-----------+-------------+
3 rows in set (0.01 sec)
只需添加

AND `related_quote`.`_id` != QUOTE_ID

到查询的结尾。

类似的引号是什么意思?您希望得到什么样的结果集?在此查询中查找“sql server全文索引”如果quote表的别名是q1,那么q2是什么?联接(即原始quote)。没问题,添加了一个快速子句,您可以在末尾添加标记以将当前查询从结果集中排除。谢谢您让我知道这一点,以便我可以从结果中删除该查询