Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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 MySQL非常简单的子表连接示例_Php_Mysql_Join - Fatal编程技术网

Php MySQL非常简单的子表连接示例

Php MySQL非常简单的子表连接示例,php,mysql,join,Php,Mysql,Join,随着MySQL的加入,我不断地陷入疑问。 我想请求一个非常简单的例子,我可以用它来继续我学习MySQL语法的旅程 假设我得到了下表的 test\u testtable testtable\u id 测试表名称 testtable\u用户 testtable_选项 testtable_textfield test\u testlink testlink\u id 测试链接 测试链接地址 测试地址 地址 地址/姓名 地址和电话 电子邮件地址 地址: 城市地址 地址 我想做出如下选择: S

随着MySQL的加入,我不断地陷入疑问。 我想请求一个非常简单的例子,我可以用它来继续我学习MySQL语法的旅程

假设我得到了下表的

test\u testtable

  • testtable\u id
  • 测试表名称
  • testtable\u用户
  • testtable_选项
  • testtable_textfield
test\u testlink

  • testlink\u id
  • 测试链接
  • 测试链接地址
测试地址

  • 地址
  • 地址/姓名
  • 地址和电话
  • 电子邮件地址
  • 地址:
  • 城市地址
  • 地址
我想做出如下选择:

SELECT * (lets say I would define the fields) FROM `test_testable` 
JOIN `test_testtable`.`testtable_id` = `test_testlink`.`testlink_link`
AND
JOIN `test_testlink`.`testlink_addres` = `test_address`.`address_id`
WHERE `user_id` = 5
因此,链接结构类似于:

test\u testtable.testtable\u id=前导

tabletest\u testlink是链接表test\u testtable和test\u地址的表

链接表test\u testlink使用字段testlink\u链接到表test\u testtable,并使用字段testlink\u地址链接到表test\u地址

这是行不通的。为了我。。因为我似乎一直没有抓住正确的语法逻辑

因此,我希望有人能给我一个小例子,说明如何正确实现这样一个简单但关键的查询

蒂亚德

一般方法:

SELECT table1.* FROM table1
JOIN table2 ON table2.id_table1 = table1.id
JOIN table3 ON table3.id_table2 = table2.id
WHERE table1.id = 10
为了您的目的:

SELECT * (lets say I would define the fields) FROM `test_testable` 
JOIN `test_testlink` ON `test_testtable`.`testtable_id` = `test_testlink`.`testlink_link`
JOIN `test_address` ON `test_testlink`.`testlink_addres` = `test_address`.`address_id`
WHERE `user_id` = 5
一般方法:

SELECT table1.* FROM table1
JOIN table2 ON table2.id_table1 = table1.id
JOIN table3 ON table3.id_table2 = table2.id
WHERE table1.id = 10
为了您的目的:

SELECT * (lets say I would define the fields) FROM `test_testable` 
JOIN `test_testlink` ON `test_testtable`.`testtable_id` = `test_testlink`.`testlink_link`
JOIN `test_address` ON `test_testlink`.`testlink_addres` = `test_address`.`address_id`
WHERE `user_id` = 5

您使用了错误的语法。您应该先说明要连接哪些表,然后根据哪些字段进行连接

SELECT * (lets say I would define the fields) FROM `test_testable` 
INNER JOIN test_testlink 
ON `test_testtable`.`testtable_id` = `test_testlink`.`testlink_link`
INNER JOIN `test_address` 
ON `test_testlink`.`testlink_addres` = `test_address`.`address_id`
AND `test_testtable`.`user_id` = 5

您使用了错误的语法。您应该先说明要连接哪些表,然后根据哪些字段进行连接

SELECT * (lets say I would define the fields) FROM `test_testable` 
INNER JOIN test_testlink 
ON `test_testtable`.`testtable_id` = `test_testlink`.`testlink_link`
INNER JOIN `test_address` 
ON `test_testlink`.`testlink_addres` = `test_address`.`address_id`
AND `test_testtable`.`user_id` = 5

我知道我应该避免像“谢谢”这样的评论。。但这对我帮助很大,我仍然很想告诉你,我真的很感激。谢谢!!!我知道我应该避免像“谢谢”这样的评论。。但这对我帮助很大,我仍然很想告诉你,我真的很感激。谢谢!!!