Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何连接不同的表?_Php_Mysql_Sql_Join_Subquery - Fatal编程技术网

Php 如何连接不同的表?

Php 如何连接不同的表?,php,mysql,sql,join,subquery,Php,Mysql,Sql,Join,Subquery,我尝试搜索相关的查询语句并应用了它,但没有成功 我试图在一个GET调用中连接api的所有表,但我无法执行它。查询失败并获取错误 对于我显示的表,我的查询如下所示 SELECT projects.*, images.*, rewards.*, shipping.* FROM projects LEFT JOIN rewards ON rewards.projects_id = projects.id LEFT INNER JOIN rewards ON rewards.id = shippi

我尝试搜索相关的查询语句并应用了它,但没有成功

我试图在一个GET调用中连接api的所有表,但我无法执行它。查询失败并获取错误

对于我显示的表,我的查询如下所示

SELECT projects.*, images.*, rewards.*, shipping.* 
FROM projects 
LEFT JOIN rewards ON rewards.projects_id = projects.id 
LEFT INNER JOIN rewards ON rewards.id = shipping.reward_id 
LEFT JOIN images ON projects.id = images.project_id 
WHERE projects.id = 1

我想加入奖励和航运与所有表,项目的奖励有关系的一对多和奖励航运也一对多。如何在一个查询中合并所有这些内容??我也尝试子查询,但我不知道如何在这些表中进行查询。 请向我解释它在子查询或联接中是如何工作的? 如果不是很好的练习,请向我解释其他技巧

更新

我使用子查询尝试了这样的方法,它表示未知列

SELECT projects.*, rewards.*, images.image, shipping = (SELECT *
FROM shipping
WHERE shipping.reward_id IN (SELECT * FROM rewards WHERE rewards.project_id = 1)) 
FROM projects JOIN rewards ON rewards.project_id = projects.id 
LEFT JOIN images ON projects.id = images.project_id 
WHERE projects.id = 1

您的查询有几个语法问题。要加入所有表,请编写:

SELECT    projects.title, rewards.price, images.images, shipping.shipping
FROM      projects
LEFT JOIN images ON images.project_id = projects.id
LEFT JOIN rewards ON rewards.project_id = projects.id
LEFT JOIN shipping ON shipping.rewards_id = rewards.id
WHERE     projects.id = 1

。。。但是请注意,如果同一个项目有多个图像和多个奖励,则此查询将生成图像和奖励的所有组合,因为您的数据库架构没有定义哪个图像属于哪个奖励。

此左内连接的最终位置是哪里?请共享“为您的表显示创建表”和您想要的最终结果如果您要从这四个表中选择所有数据,您将不知道要将哪个图像与哪个奖励组合,因此结果将是每个图像与每个奖励组合。您应该提供示例数据以及您希望这些示例数据的输出。Hi。请合理地设置代码的格式。同时阅读并行动。阅读一篇你所质疑的关系数据库的介绍,这只是一个问题。也可以在谷歌上搜索你的标题/问题的变体作为例子。好的,我会编辑它。非常感谢。谢谢,这很有效。这是示例表和查询。它也适用于我的真实查询。但表数据是重复的,因为我有1:m关系。你能建议我如何过滤吗???如果不是的话,我会用php来做。如果你要求得到空值而不是重复值,那么是的,你应该用php来做。虽然可以在SQL中执行,但它不是SQL的角色,并且会使查询变得相当复杂,输出很难排序。用PHP实现。