各位大大,
第一个table如下                    第二个table如下name    age                        age     address1111    14                         14     aaaa
2222    15                         15     bbbb
3333    16                         16     cccc
4444    17                         17     dddd
我想从第一个table当中提取出name是1111和3333的age,应该取得14和16,  然后取第二个table当中找14和16,然后取他们相对的address。是不是应该用到array呀,我每次都只取到第一个1111的age,或是取到1111和3333的age后,在第二个table当中只是取到第一个age相对的值,也就是age14相对的值。  该怎么写呀?谢谢各位$result = mysql_query("SELECT * FROM table1 WHERE name =‘1111’and name=‘3333’")or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
$row['name'] 这里该怎么写呀??
}
怎样从第二个table当中提取相对的age是14 和16  的address的值呀.这里该怎么写呀??
谢谢各位,小弟在线等。

解决方案 »

  1.   

    table有点乱了   再发一遍
    第一个name age 1111 14 
    2222 15 
    3333 16 
    4444 17 下面是第二个age   address14    aaaa
    15    bbbb
    16    cccc
    17    dddd
      

  2.   

    使用 联合查询select * from talbe_a left join table_b on (table_a.age=table_b.age) where (table_a.name='1111' or table_a.name='3333')
      

  3.   

    楼上的大大,这两个table只是我举个例子,实际的table很乱什么都有,很难join,也不可能join的。谢谢
    用array应该是可以吧??
      

  4.   


    那你两个表总有些关系吧???table_a.age 是外键,也是table_b.age 的主键吧????两个是对应的吧??没任何关联,不知楼主要如何实现还有,楼主说用 array ,是什么用意?这个不需要 array 也可以实现吧
      

  5.   

    一种方法:
    你用也可以..不用也请不要骂我.
    while ($row = mysql_fetch_assoc($result))
    {
      $table1_name=$row['name']; 这里该怎么写呀??
      $table1_age=$row["age"]; //获取了age 
      $address=get_address($table1_age) //調用....獲取address
    }function get_address($age)
    {
      $sql="select address from table2 where age=$age";
      $result_age=mysql_query($sql);
      ....
      return address;
    }
      

  6.   


    while ($row = mysql_fetch_assoc($result))
    {
        $arr[] = $row['age'];
    }
    print_r[$arr];
      

  7.   


    CREATE
        /*[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
        [DEFINER = { user | CURRENT_USER }]
        [SQL SECURITY { DEFINER | INVOKER }]*/
        VIEW `table_view` 
        AS
        (SELECT t1.name,t1.age,t2.address FROM table1 as t1 left join table2 as t2 on (t1.age = t2.age))
    先用视图,然后就成了单表查询了。。
      

  8.   

    SELECT * FROM table1, table2 WHERE table1.age=table2.age and (table1.name ='1111' or table1.name='3333')
      

  9.   

    select * from a left join b on a.age=b.age where a.name in ('1111','3333')
      

  10.   

    各位大大,那如果table有很多14  16怎么办???例如 table2如下age  address14   aaaa
    14   bbbb
    15   bbbb
    16   cccc
    16   cccc
    17   dddd
    17   dddd
    table1 还是和上面的一样两个table的age的数目不同也可以吗??table2的age里面有很多14和16的。
    谢谢
      

  11.   

    SELECT * FROM table1, table2 WHERE table1.age=table2.age and find_in_set('14',age) or find_in_set('16',age)
      

  12.   

    各位大大,前面可能是我没讲清楚,第一步是从第一个table当中取出name是1111和2222的 age的值,也就是14和16然后第二步要根据取出的值,也就是14和16,去第二个table当中查找14 和16相对的address的值,也就是aaaa和bbbb这些。然后echo出这些aaaa  bbbb的。哪位大大可以给个清楚点的?谢谢,在线等
      

  13.   

    前面的问题都不要看了,这是最新的。谢谢各位各位大大,真不好意思,我重新再发一遍这个问题。如下换一下table和条件。table1name age1111  14
    2222  16
    3333  15
    4444  17
    table2如下name  address1111  aaaa
    1111  bbbb 
    2222  cccc 
    3333  dddd
    4444  eeee
    各位大大,前面可能是我没讲清楚,第一步是从第一个table当中取出age是14和16的 name的值,也就是1111和2222然后第二步要根据取出的值,也就是1111和2222,去第二个table当中查找1111 和2222相对的address的值,也就是aaaa和bbbb还有cccc这些。然后echo出这些aaaa bbbb cccc的。哪位大大可以给个清楚点的?谢谢,在线等
      

  14.   


    in里面的东西可以array转换string