0

MYSQLデータベースにこのテーブルがあります(添付の画像を参照)

データベース

3 つの異なるアパートの列「ケーブル」を取得したいと思います。これは、これまでのコードにあるものですが、機能していません。理由は何ですか?

try
{
        //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        //Connection connection=DriverManager.getConnection("jdbc:odbc:db1","","");
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection connection=DriverManager.getConnection("jdbc:mysql://localhost/etoolsco_VecinetSM?user=etoolsco&password=g7Xm2heD41");
        Statement statement=connection.createStatement();
        String query;
        query="SELECT cable FROM flatene2013 WHERE Apto='5C' JOIN SELECT cable FROM flatene2013 WHERE Apto='5Cest1' JOIN SELECT cable FROM flatene2013 WHERE Apto='5Cest2'";            
        ResultSet resultSet=statement.executeQuery(query);
        while(resultSet.next())
    {%>
    <tr>

    <td>&nbsp;</td>
    <td align="right"><font size="-1"><%out.println(resultSet.getBigDecimal(1)+"");%></font></td>
    <td align="right"><font size="-1"><%out.println(resultSet.getBigDecimal(2)+"");%></font></td>
    <td align="right"><font size="-1"><%out.println(resultSet.getBigDecimal(3)+"");%></font></td>
    </tr>
    <%
    }
4

2 に答える 2

2

UNIONの代わりに使用JOIN

SELECT  cable , Apto
FROM    flatene2013 
WHERE   Apto='5C' 
UNION
SELECT  cable , Apto 
FROM    flatene2013 
WHERE   Apto='5Cest1' 
UNION
SELECT  cable  , Apto
FROM    flatene2013 
WHERE   Apto='5Cest2'

または、気にしない場合はApto

SELECT  cable , Apto
FROM    flatene2013 
WHERE   Apto IN ('5C' , '5Cest1', '5Cest2')

アップデート

SELECT  MAX(CASE WHEN Apto = '5C' THEN  Cable ELSE NULL END) as `5c`,
        MAX(CASE WHEN Apto = '5Cest1' THEN  Cable ELSE NULL END) as `5Cest1`,
        MAX(CASE WHEN Apto = '5Cest2' THEN  Cable ELSE NULL END) as `5Cest2`
FROM
        (
            SELECT  cable , Apto
            FROM    flatene2013 
            WHERE   Apto IN ('5C' , '5Cest1', '5Cest2')
        ) s
于 2013-01-21T15:36:57.857 に答える
1

WHERE IN を使用してみてください:

SELECT cable FROM flatene2013 WHERE Apto IN ('5C','5Cest1','5Cest2')
于 2013-01-21T15:37:38.477 に答える