我不断回到MySQL加入的问题。 我想请一个非常简单的例子,我可以用来继续学习MySQL语法的过程。
假设我得到了下表
test_testtable
test_testlink
test_address
我想做出如下选择:
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_testtable。 testtable_id =领先
表 test_testlink 是一个表格,用于链接表格 test_testtable 和 test_address
链接表 test_testlink 使用字段 testlink_link 链接到表 test_testtable ,并使用字段 testlink_address 链接到表 test_address
这不起作用。对我来说..因为我似乎无法捕捉到正确的语法逻辑。
所以我希望有人可以给我一个小例子,说明如何正确实现这样一个简单但关键的查询!
TIAD !!
答案 0 :(得分:2)
一般方法:
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
答案 1 :(得分:2)
您使用的语法错误。您应该首先根据哪些字段提及要加入的表。
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
答案 2 :(得分:1)
select * from testlink JOIN testtable ON testlink.tableid = testtable.ID
JOIN testaddress ON testlink.addressid = testaddress.ID
WHERE testtable.ID = 5