【发布时间】:2010-03-23 23:07:28
【问题描述】:
我在构建查询时遇到问题。我可以在 3 个不同的查询中做我想做的事。
SELECT id FROM table1 WHERE url LIKE '%/$downloadfile'
put that in $url_id
SELECT item_id FROM table2 WHERE rel_id = '$url_id'"
put that in $item_id
SELECT rel_id FROM table2 WHERE rel_id = '$item_id' AND field_id = '42'"
put that in $user_id
但是通过阅读有关联接和内部联接的示例,我认为有一种更优雅的方式。我无法全神贯注地编写一个更好的查询(但希望)我可以描述它应该如何进行:
表1 字段:id、url
表2 字段 item_id、rel_id、field_id
我知道 table1.url (LIKE '%/$filename') 的最后一部分,我选择了 table1.id。 table1.id 等于 table2.rel_id 中的一个条目。所以得到它并选择table2.item_id。 在 table2 中有另一个具有相同 table2.item_id 的条目,它将有一个 table2.field_id = '42' 最后,我需要的值是 table2.rel_id,其中 table2.field_id 为 42。 我将获取该值并将其放入 $user_id
这可以通过使用联接/内联接的一个查询来完成吗?
【问题讨论】: