我正试图创建一个join语句来解决我的问题,但是我无法理解它。
我是一个新加入的语句,所以请忍受我的sql语句是无意义的。
我有两个表,一个是一个问题表,用户在这里询问有关待售商品的问题。
第二个是用户询问的项目表。
表1称为questionsquestion_ref, questioner_user_ref, item_ref, seller_ref, question_text, timestamp组成

questions
===========
+--------------+--------------------+---------+-----------+--------------+----------+
| question_ref |questioner_user_ref |item_ref |seller_ref |question_text |timestamp |
+--------------+--------------------+---------+-----------+--------------+----------+

称为my_item_comments的表2由questioner_ref, item_ref, last_question_ref组成
my_item_comments
===========
+---------------+---------+------------------+
|questioner_ref |item_ref |last_question_ref |
+---------------+---------+------------------+

我已经设置了表2来跟踪用户提问的项目,以便在其他人向卖家提问或卖家回答问题时通知他们。
所以我想创建一个问题记录集
一个)。有人回答了有关用户正在销售的商品的问题
(第二章)。卖家已经回答了用户提出的问题,
c)中。第三个用户问了一个关于某个项目的问题,该用户也问了一个关于该项目的问题。
有点像facebook的评论系统,在那里你会被告知人们对你所评论的状态的评论。
所以我当前的sql语句如下
$user_ref= current logged in user


  $sql=mysql_query("
    SELECT * FROM questions
    LEFT JOIN my_item_comments
    ON questions.item_ref=my_item_comments.item_ref
    WHERE questions.questioner_user_ref!='$user_ref'
    AND (questions.seller_ref='$user_ref' OR questions.item_ref=my_item_comments.item_ref
    ORDER BY timestamp DESC");

结果不起作用,我认为这是因为OR questions.item_ref=my_item_comments.item_ref,但对我来说,我不能解决它。
任何帮助都将非常感谢,即使这意味着用更多的表或表中的新字段重新构造我的数据库。
提前谢谢你,巴里

最佳答案

SELECT * FROM questions
LEFT JOIN my_item_comments ON questions.item_ref=my_item_comments.item_ref
WHERE
   questions.questioner_user_ref != '$user_ref' AND
   (questions.seller_ref='$user_ref' OR questions.item_ref=my_item_comments.item_ref)
ORDER BY timestamp DESC

我认为您缺少一个)来括住OR子句(在上面的示例中,我添加了它)

关于mysql - MYSQL联接无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8487776/

10-15 21:25