[英]Using INNER JOIN twice in the same query
我仍在嘗試掌握 SQL 的竅門。我構建了 1 個查詢,從 filter_thread(包含“filter_id”和“thread_id”列)表和過濾器(“filter_id 和”tag“)表中提取 thread_id”
然后,我使用完全不同的查詢來查找包含“thread_id”的線程表內容。
我意識到這不是最好的方法,但無法獲得成功的查詢。 有人能幫忙嗎?
$query = "SELECT ft0.thread_id
FROM filter f0
INNER JOIN filter_thread ft0 ON ft0.filter_id = f0.filter_id
WHERE f0.tag LIKE '%filter1%'
OR f0.tag LIKE '%filter2%'"
$result = $query->result_array();
$thread = array();
foreach ($result as $thread_id)
{
$id = $thread_id['thread_id'];
$query = $this->db->query("SELECT * FROM thread WHERE thread_id='$id'");
$thisRow = $query->result_array();
array_push($thread, $thisRow[0] );
}
謝謝!
您可以在單個查詢中執行此操作,如下所示:
SELECT t.*
FROM filter AS f0
INNER JOIN filter_thread AS ft0
ON ft0.filter_id = f0.filter_id
INNER JOIN thread AS t
ON ft0.thread_id = t.thread_id
WHERE f0.tag LIKE '%filter1%'
OR f0.tag LIKE '%filter2%
select t.x, t.y, ... from thread t
inner join filter f on f.thread_id = t.thread_id
inner join filter_thread ft on ft.filter_id = f.filter_id
where bla bla
也許有一些團體......?
試試這個
SELECT t.*, f0.*
FROM filter f0
INNER JOIN filter_thread ft0 ON ft0.filter_id = f0.filter_id
INNER JOIN thread t ON t.thread_id = ft0.thread_id
WHERE f0.tag LIKE '%filter1%'
OR f0.tag LIKE '%filter2%'"
GROUP BY f0.filter_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.