MySQL 请求子表的非常简单的连接示例
MySQL very simple join example requested with subtable
随着 MySQL 的加入,我不断陷入问题。
我想请求一个非常简单的例子,我可以用它来继续我理解学习 MySQL 语法的旅程。
假设我得到以下 table 的
test_testtable
- testtable_id
- testtable_name
- testtable_user
- testtable_option
- testtable_textfield
test_testlink
- testlink_id
- testlink_link
- testlink_address
test_address
- address_id
- address_name
- address_phone
- address_email
- address_street
- address_city
- address_zip
我想做出如下选择:
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
因此 linking 结构如下:
test_testtable.testtable_id =领先
tabletest_testlink是table到link的tabletest_testtable 和 test_address
和linking table test_testlink使用字段testlink_link到 link 到 table test_testtable,并使用字段 testlink_address 到 link到tabletest_address
这不起作用。对我来说..因为我似乎总是无法抓住正确的语法逻辑。
所以我希望有人能给我一个小例子,说明如何正确实现这样一个简单但关键的查询!
TIAD!!
一般方法:
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 * from testlink JOIN testtable ON testlink.tableid = testtable.ID
JOIN testaddress ON testlink.addressid = testaddress.ID
WHERE testtable.ID = 5
随着 MySQL 的加入,我不断陷入问题。 我想请求一个非常简单的例子,我可以用它来继续我理解学习 MySQL 语法的旅程。
假设我得到以下 table 的
test_testtable
- testtable_id
- testtable_name
- testtable_user
- testtable_option
- testtable_textfield
test_testlink
- testlink_id
- testlink_link
- testlink_address
test_address
- address_id
- address_name
- address_phone
- address_email
- address_street
- address_city
- address_zip
我想做出如下选择:
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
因此 linking 结构如下:
test_testtable.testtable_id =领先
tabletest_testlink是table到link的tabletest_testtable 和 test_address
和linking table test_testlink使用字段testlink_link到 link 到 table test_testtable,并使用字段 testlink_address 到 link到tabletest_address
这不起作用。对我来说..因为我似乎总是无法抓住正确的语法逻辑。
所以我希望有人能给我一个小例子,说明如何正确实现这样一个简单但关键的查询!
TIAD!!
一般方法:
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 * from testlink JOIN testtable ON testlink.tableid = testtable.ID
JOIN testaddress ON testlink.addressid = testaddress.ID
WHERE testtable.ID = 5