我附上了我的问题的一张图片:
答案 0 :(得分:2)
您需要正确加入表格。
像这样:
SELECT
paper_list,monday,tuesday,wednesday,thrsday,friday,saturday,sunday,magzine_name,rate
FROM papers
LEFT JOIN papers_rate
ON papers_rate.paperId = papers.id
LEFT JOIN magzines
ON magzines.paperId = papers.id
LEFT JOIN magzines_rate
ON magzines_rate.magazineId = magzines.id
WHERE customer_id = ?"
如果您进行内部联接,如果您没有例如magazine_rate,则所有结果都将消失......
检查您的拼写。
你正在写 thrsday 而不是星期四和 magzine 而不是杂志......
PS:customer_id来自哪里?
答案 1 :(得分:2)
你可以这样做(没有加入):
SELECT papers.paper_list,papers_rate.monday,papers_rate.tuesday,
papers_rate.wednesday,papers_rate.thrsday,papers_rate.friday,
papers_rate.saturday,papers_rate.sunday,magzines.magzine_name,magzines_rate.rate
FROM papers,papers_rate,magzines,magzines_rate
WHERE example_table.customer_id = ? AND other conditions"
这种语法实际上是一个简单的INNER JOIN。有些数据库将其视为与显式JOIN完全相同。 WHERE子句告诉数据库要关联哪些字段,并返回结果,就好像列出的表根据提供的条件组合到一个表中一样。(http://www.techrepublic.com/article/sql-basics-query-multiple-tables/)
答案 2 :(得分:1)
使用连接从多个表中选择多个列。请参阅this以了解有关加入和加入示例的信息。
注意:两个表之间应该有一个公共字段来执行连接操作
答案 3 :(得分:1)
您需要使用Join子句(... FROM papers JOIN papers_rate ON papers.[id_column] = papers_rate.[foreign_key])
或使用equi-join (replace JOIN...ON clause with a condition in the WHERE clause) (... FROM papers,papers_rate WHERE papers.[id] == papers_rate.[foreign_key])
您能否发布表格的架构?
答案 4 :(得分:1)
如果表格相关,则必须使用JOIN
:让我们看一个示例(我不知道您的表字段,因此我将发明一个自定义示例)。考虑person
和pet
表; person
表可以包含以下字段:
Person (personID, first_name, last_name, age)
pet
表可以包含以下其他字段:
Pet (petID, name, age, personID)
personID
表格中的pet
字段标识了宠物的所有者。这是一个简单的1:N关系。要从这两个表中选择一些值,您必须执行以下操作:
SELECT Person.first_name, Person.last_name, Pet.name
FROM Person INNER JOIN Pet ON
Person.personID = Pet.personID
WHERE Person.age > 30
这只是一个例子,显然。而INNER JOIN
只是一种连接类型(有几种连接方法)。 Here you can find some documentation concerning these issues。