0

我有四张桌子。

第一个和第二个有一些标准内容,而第三个和第四个表格有这样的内容

第一的

id
name

第二

id
count

第三

id
color

第四

id
id_third
id_first

我从第二个、第三个和第四个表中选择所有数据。

SELECT id,
       name, 
       ifnull((select count from second s where s.id  = f.id),0) as page,
FROM first f

但是我如何从 color 的第三个表中选择 ALL ROWS 。Fourth.id_first={来自第一个 tbl 的一些 id}???

编辑。

但我想从某个表中选择而不是一个值!!!

例如,这段代码做我想做的事,但我有错误,因为我不能在一个 tbl 中选择多于一行 ..(见第二行)

    select SQL_CALC_FOUND_ROWS s.url,
        ifnull((select * from labels_data ld, labels l where ld.id=l.site_id and l.site_id=s.id),0) as labels,
        ifnull((select count from counter_li cl where cl.site_id = s.id order by date desc limit 1),0) as counter_li,
        ifnull((select count from counter_li cl where cl.site_id = s.id order by date desc limit 1 offset 1),0) as counter_li_before,
        last_check
    from sdata s
4

2 回答 2

0

请参阅下面的 SQL:

SELECT f.id,f.name,s.count, t.id, t.color, fo.id
FROM first f, second s, third t, fourth fo
WHERE f.id = s.id
AND fo.id_third = t.id
AND fo.id_first = fo.id
于 2013-02-22T12:54:54.403 回答
0
SELECT id,
name, 
ifnull((select count from second s where s.id = f.id),0) as page, fourth.id_first
FROM first LEFT JOIN fourth ON first.id = fourth.id
Where fourth.id_first IN (Select id_first form fourth)
于 2013-02-22T15:42:10.440 回答