如何使用trid表中的数据从一个表中选择一些行,在另一个表中选择一些行?

时间:2013-02-22 12:42:07

标签: mysql sql

我有四张桌子。

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

第一

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

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

EDIT。

但我希望从某些表中选择而不是一个值!!!

例如,这段代码做我想要的,但我有错误,因为我不能在一个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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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)