私は製品のIDを入力する必要があるプログラムを持っており、特定の製品に関する詳細を表示するためにデータベースを検索します。1つの列がNULLのときにデータベース内の項目を見つけることができません
コードは、いずれかの列(PRODUCT_TYPE)にデータが格納されていないため、productID 2およびproductID 4以外のデータベース内のすべての項目に対して正常に機能します。
私は言う私のコードでif文を持っている:
else if (result.getString("PRODUCT_TYPE") == null && result.getString("DESCRIPTION ") == null)
{
System.out.println("Item ID: " + result.getString("STOCKITEM") + ". \nProduct name: " + result.getString("PRODUCT") + ". \nCost: £" + result.getString("COST") + ". \nStock level: " + result.getString("STOCKLEVEL") + ". \nProduct type: null.");
}
しかし、それは製品の種類がnullの場合、製品を見つけることができないのですが、説明がある場合は、まだそれを見つけることができますなぜ私が把握することはできませんヌル。
try{
String searchCode = "SELECT PRODUCTS.PRODUCT, PRODUCTS.COST, PRODUCTS.DESCRIPTION, PRODUCT_STOCK.STOCKITEM , PRODUCT_STOCK.STOCKLEVEL FROM PRODUCT_TYPE INNER JOIN (PRODUCTS FULL OUTER JOIN PRODUCT_STOCK ON PRODUCTS.PRODUCTID = PRODUCT_STOCK.STOCKITEM) ON PRODUCT_TYPE.PRODTYPEID = PRODUCTS.PRODUCT_TYPE WHERE PRODUCTID = " + inputValue + ";";
// sql statement searches the database for the required data
Statement statement = dbConnection.createStatement();
ResultSet result = statement.executeQuery(searchCode);
boolean found = false;
found = result.next();
if (!found) { //if no data is found then display the error message and restart the product search method
System.out.println("That product couldn't be found, please try again.");
searchProduct();
}
else if (result.getString("PRODUCT_TYPE") == null && result.getString("DESCRIPTION ") == null)
{
System.out.println("Item ID: " + result.getString("STOCKITEM") + ". \nProduct name: " + result.getString("PRODUCT") + ". \nCost: £" + result.getString("COST") + ". \nStock level: " + result.getString("STOCKLEVEL") + ". \nProduct type: null.");
}
else if (result.getString("PRODUCT_TYPE") == null && result.getString("DESCRIPTION") != null){
System.out.println("Item ID: " + result.getString("STOCKITEM") + ". \nProduct name: " + result.getString("PRODUCT") + ". \nCost: £" + result.getString("COST") + ". \nStock level: " + result.getString("STOCKLEVEL") + ". \nDescription: " + result.getString("DESCRIPTION") + ". \nProduct type: null.");
}
else if (result.getString("PRODUCT_TYPE") != null && result.getString("DESCRIPTION") == null){
System.out.println("Item ID: " + result.getString("STOCKITEM") + ". \nProduct name: " + result.getString("PRODUCT") + ". \nCost: £" + result.getString("COST") + ". \nStock level: " + result.getString("STOCKLEVEL") + ". \nDescription: null. \nProduct type: " + result.getString("PRODTYPE_DESC") + ".");
}
else if (result.getString("PRODUCT_TYPE") != null && result.getString("DESCRIPTION") != null){
System.out.println("Item ID: " + result.getString("STOCKITEM") + ". \nProduct name: " + result.getString("PRODUCT") + ". \nCost: £" + result.getString("COST") + ". \nStock level: " + result.getString("STOCKLEVEL") + ". \nDescription: " + result.getString("DESCRIPTION") + ". \nProduct type: " + result.getString("PRODTYPE_DESC") + ".");
}
}
catch (Exception e){ // if the product can't be found then display the error message and restart the product search method
System.out.println("Could not find product.");
System.out.println(e.toString());
searchProduct();
}
//goes back to menu once the method has finished
askUser();
}
大変お手伝いをいたします。ありがとう。
SQLはPRODUCTS.PRODUCT_TYPEでJOINを実行していますが、これはnullです。つまり、nullと一致するものがないため、結合は何も結合しません。 – ryanp102694
これを解決する方法はありますか?他のテーブルにリンクできるものは他にありません。これは、他の製品タイプテーブルに関するテーブルの唯一の列です。 – Adam