朋友你好我有 报价表如下表结构充分利用数据库表类似的行
我要访问所有类似的报价(有相同的AUTHOR_ID和CATEGORY_ID)特定_id( quoteId)
类似的引号表示同一个category_id和author_id相同的表中所有这些行的所有列。如果两位作者的作者相同且类别相同,则可以将两个引号视为相似。
朋友你好我有 报价表如下表结构充分利用数据库表类似的行
我要访问所有类似的报价(有相同的AUTHOR_ID和CATEGORY_ID)特定_id( quoteId)
类似的引号表示同一个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)
您可以通过简单地增加
AND `related_quote`.`_id` != QUOTE_ID
到查询的末尾移除从ResultSet的QUOTE_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
你是什么意思的相似报价?你期望什么样的结果集? – JohnP 2011-04-29 10:40:11
在此查询中查询“sql server全文索引” – 2011-04-29 10:41:04