朋友你好我有 報價表如下表結構充分利用數據庫表類似的行
我要訪問所有類似的報價(有相同的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