你好 friend 我有以下表结构 报价表
我想访问特定 _id(quoteId) 的所有相似引语(具有相同的 author_id 和 category_id)
相似引号是指该表中所有行的所有列,具有相同的 category_id 和相同的 author_id。如果两个引用的作者和类别相同,则可以认为它们是相似的。
最佳答案
相同的作者 ID 和类别 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)
您可以通过简单地添加从结果集中删除 QUOTE_ID
AND `related_quote`.`_id` != QUOTE_ID
到查询结束。
关于mysql - 从数据库表中获取相似的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5830964/