我有一个 JavaScript 程序,如果你输入“让我们谈谈”或类似的东西,它会进入它的问题功能,从问题表中向用户提问。它只问没有被问到的问题。
我已经设置了 3 张桌子。
(questions) (people) (questionasked)
QID Question PID Person QID PID Asked Answer
1 What is life? 1 Lindsay 1 1 N ''.
2 Do you know Kate J? 2 Kate 2 1 Y 'Yes, Kate is cool'.
对于所提问的表,有一个 QID 和 PID 的组合主键,因此相同的问题不会被问两次。
什么是让问题被问到的好方法。问题表中可能有 20 多个问题。提供给进行查询的 php 文件的变量只是名称:name(用户名)。例如。
$query1 = "SELECT q.Question
FROM questions q inner join questionsasked qa
ON q.QID = qa.QID
WHERE qa.Asked='N'";
我可以在这里添加另一个 AND 子句来检查吗
questionsasked inner join people on PID = people.PID AND people.Person = $name ?
上面的查询没有返回任何东西.. 仍然需要更多的 SQL 练习.. 我希望它返回结果中的第一个问题。
好的,我得到的答案主要是 vidyadhar 的回答,并且还结合了 JW 的“OR qa.Asked IS NULL”,这是一个很好的观点,因为除非实际提出问题,否则我可能不会填写“问题”表。最好只是有一个问题表,然后在回答问题后填写问题表。
我正在使用的答案是:
$query1 = "SELECT q.Question
FROM questions q
INNER JOIN questionsasked qa
ON q.QID = qa.QID
INNER JOIN peopleiknow p
ON qa.PID = p.PID
WHERE qa.Asked='N' OR qa.Asked IS NULL
AND p.Person = '$name'";
欢迎任何进一步的调整。
其实我还是有这个问题,所以修改了表格,问题并显示了这个问题中的php代码:PHP文件中的SQL查询需要修复