我正试图创建一个join语句来解决我的问题,但是我无法理解它。
我是一个新加入的语句,所以请忍受我的sql语句是无意义的。
我有两个表,一个是一个问题表,用户在这里询问有关待售商品的问题。
第二个是用户询问的项目表。
表1称为questions
由question_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/