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

时间:2011-04-29 13:20:30

标签: php mysql sql

您好朋友我有以下表格结构的表格

enter image description here

我想访问特定_id(quoteId)的所有类似引号(具有相同的author_id和category_id)

早些时候

类似的引号表示此表的所有那些行的所有列都具有相同的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 相同的author_id。如果两个引用的作者相同且类别相同,则可以认为它们是相似的。

请帮我创建 OR 条件的查询 谢谢你

2 个答案:

答案 0 :(得分: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 :(得分: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';