이것이 중복되었을 것으로 확신하며 이것이 다소 어리석은 질문 일 것이라고 확신합니다. 나는 MySQL의 전문가는 아니며 SKU_ID와 관련된 제품 SKU 및 옵션에 대한 다소 불쾌한 데이터베이스를 가지고 있습니다.MySQL에서 다중 테이블 및 관계 선택
나는 $ productId와 같은 제품이 있으며, 3 색 (핑크, 퍼플, 블랙)의 T 셔츠입니다. 여기에 (에만 관련 정보를 표시) 데이터베이스 정보입니다 :
tbl_skus
SKU_ID SKU_ProductID
62 32
63 32
64 32
62 32
62 32
67 32
tbl_skuoption_rel
optn_rel_SKU_ID optn_rel_Option_ID
62 32
62 34
63 34
63 33
64 35
64 32
65 35
65 33
66 36
66 32
67 36
67 33
tbl_skuoptions
option_ID option_Type_ID option_Name option_Sort
32 5 Small 1
33 5 Medium 2
34 6 Pink 1
35 6 Purple 2
36 6 Black 3
내 상사와 난 그냥이 생각 이상 아마, 나는 내 쿼리에 합류와 함께 잘 따라하지 않습니다. 그것이 내가이 일을하기 위해해야 할 일이라면 그렇게 될 것이지만 나는 더 트릭스터에 가깝습니다.
다음$SKU_QUERY = mysql_query("SELECT SKU_ID FROM tbl_skus WHERE SKU_ProductID = '$productId'") or die(mysql_error());
$SKU_NUM_ROWS = mysql_num_rows($SKU_QUERY);
if($SKU_NUM_ROWS > 0) {
while($SKU_OBJECT = mysql_fetch_object($SKU_QUERY)) {
$SKU_ID = $SKU_OBJECT->SKU_ID;
$REL_OPTION_QUERY = mysql_query("SELECT optn_rel_Option_ID FROM tbl_skuoption_rel WHERE optn_rel_SKU_ID = '$SKU_ID' LIMIT 0,1") or die(mysql_error());
$REL_OPTION_NUM_ROWS = mysql_num_rows($REL_OPTION_QUERY);
if($REL_OPTION_NUM_ROWS > 0) {
while($REL_OPTION_OBJECT = mysql_fetch_object($REL_OPTION_QUERY)) {
$OPTION_ID = $REL_OPTION_OBJECT->optn_rel_Option_ID;
$OPTIONS_QUERY = mysql_query("SELECT option_Name FROM tbl_skuoptions WHERE option_ID = '$OPTION_ID' AND option_Type_ID = '6' ORDER BY option_sort LIMIT 0,1") or die(mysql_error());
$OPTIONS_NUM_ROWS = mysql_num_rows($OPTIONS_QUERY);
if($OPTIONS_NUM_ROWS > 0) {
$OPTIONS_OBJECT = mysql_fetch_object($OPTIONS_QUERY);
echo "$OPTIONS_OBJECT->option_Name, ";
}
}
}
}
}
하는 내 결과 것 : 난 그냥 여분의 색상 이름을 벗을 수 있다면 핑크, 퍼플, 퍼플, 블랙,
블랙, 나는 괜찮을거야 여기 내 시도입니다. 나는 최대 5 ~ 6 색 이상을 수행하지 않으므로로드에 대한 우려는 필자의 의견으로는 필요하지 않습니다. 다시 한번, 그것이 합류하는 것만 가능하다면, 나는 그것을 할 것입니다. 그러나 나의 10 분 시도는 내가이 방법으로 그것을 할 수 있음을 증명하는 것처럼 보인다.
도움을 주셔서 감사합니다. 항상 감사드립니다.
나의 사과 :
편집 ---
가 나는 결과로 원하는 것을 포함하는 것을 잊었다. 지금 당장은 색상을 다루는 옵션 문자열을 만드는 것뿐입니다. 그래서 내 현재 결과는 "핑크, 퍼플, 블랙, 블랙"이고 내 결과는 이어야합니다.은 "핑크, 퍼플, 블랙"이되어야합니다. 나는 그것이 미친 일에 대한 간단한 결과라는 것을 알고 있지만, 나중에 이것을 연장 할 것이다.
당신이 몇 문장에서 찾고있는 결과를 설명 할 수? – abesto
그래서 전반적으로, 당신은 무엇을하고 싶습니까? 당신이 당신이 묻고 싶은 것을 잊어 버린 배경에 대해 너무 많이 설명하는 것 같아서 – Joseph
사과드립니다. 지금 당장은 색상을 다루는 옵션 문자열을 만드는 것뿐입니다. 그래서 당신은 나의 현재 결과가 "핑크, 퍼플, 블랙, 블랙"이고 나의 결과는 ** "핑크, 퍼플, 블랙"이어야한다고 봅니다. 나는 그것이 미친 일에 대한 간단한 결과라는 것을 알고 있지만, 나중에 이것을 연장 할 것이다. – lxndr