2011-04-29 30 views
2

朋友你好我有報價表的表結構充分利用數據庫表類似的行

enter image description here

我想訪問特定_id所有類似的報價(有相同的AUTHOR_ID和CATEGORY_ID)(quoteId )

早些時候

類似的報價是指該表相同CATEGORY_ID 相同AUTHOR_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 

但是,現在一些其他的要求類似行情的定義略有改變

類似的報價是指該表的相同的所有行的所有列category_id same author_id。如果兩位作者的作者相同且類別相同,則可以將兩個引號視爲相似。

請幫我爲OR條件創建查詢在進階

感謝
+0

您需要在子句中使用。 – 2011-04-29 13:22:35

+0

我應該用ON – Abhi 2011-04-29 13:23:34

+0

替換使用條款,這是你應該做的。 – 2011-04-29 13:27:33

回答

2
SELECT related_quote.* 
FROM quote AS main_quote 
    LEFT JOIN quote AS related_quote 
    ON (related_quote.author_id = main_quote.author_id OR 
     related_quote.category_id = main_quote.category_id) 
WHERE main_quote._id = main_quote._ID 
1

您可以使用類似

SELECT 
    t1.column1, 
    t1.column2, 
    t2.column1, 
    t2.column2, 
    t3.column1, 
    t3.column2 
FROM t1 
    LEFT JOIN t2 ON (t2.ForeignKey = t1.primaryKey) 
    LEFT JOIN t3 ON (t3.foreignKey = t2.PrimaryKey) 
WHERE t1.columnName = 'somevalue';