table_1
name  id
a      1
b      2
c      3table_2
id
1
2
我想得到 值a b ,有分 
With adoQuery1 do
                   begin
                   Close ;
                   SQL.Clear;
                   SQL.Add('Select name From table_1 Where (table_1.id = table_2.id)');
                   Open;
                   end;
为什么执行后出现以下错误呢?
the column prefix 'table_2' does not match with a table
name or alias name used in the query

解决方案 »

  1.   

    Select name From table_1,table_2 Where (table_1.id = table_2.id)
      

  2.   

    var
      s: String;
    begin
      With adoQuery1 do
      begin
        Close ;
        SQL.Clear;
        SQL.Add('select id from Table_1 where name = ''a''');
        Open;
      end;
      s := ADOQuery1.Fields[0].AsString; //s是你需要的a值!
    end;
      

  3.   

    也可以用
    SELECT id FROM table1 INNER JOIN table2 ON table1.id = table2.id
      

  4.   

    Select name From table_1 Where (table_1.id in (select id from table_2))
      

  5.   

    SELECT 
           A.id 
    FROM table_1 A
    JOIN table_2 B
      ON A.id = B.id
      

  6.   

    SQL.Add('Select name From table_1, table_2 Where table_1.id = table_2.id');
    ft你了,连表名table_2都没有给出。