我還需要從xcart_extra_field_values WHERE fieldid = 5中選擇值。從環顧四周,看起來我需要做的是使用連接和別名,但是我似乎無法弄清楚如何連接該表本身,並使用另一個別名的價值,並試圖拉同一個表兩次崩潰我的數據庫。兩次。選擇相同的列兩次
這是我當前的查詢,其工作原理:
SELECT a.avail,
c.value,
b.productid,
a.productcode,
FROM xcart_products a,
xcart_products_lng_en b,
xcart_extra_field_values c,
WHERE a.productid IN
(SELECT productid
FROM xcart_extra_field_values
WHERE a.productid = productid
AND fieldid = 5
AND (LOWER(value) = 'retail'
OR LOWER(value) = 'stock'
OR LOWER(value) = 'c1 stock'
OR LOWER(value) = 'c2 stock'
OR LOWER(value) = 'g stock'))
AND c.fieldid = 9
AND (a.productid = b.productid)
AND (b.productid = c.productid)
這是一個崩潰的數據庫查詢:
SELECT a.avail,
c.value,
d.value,
b.productid,
a.productcode
FROM xcart_products a,
xcart_products_lng_en b,
xcart_extra_field_values c,
xcart_extra_field_values d
WHERE a.productid IN
(SELECT productid
FROM xcart_extra_field_values
WHERE a.productid = productid
AND fieldid = 5
AND (LOWER(value) = 'retail'
OR LOWER(value) = 'stock'
OR LOWER(value) = 'c1 stock'
OR LOWER(value) = 'c2 stock'
OR LOWER(value) = 'g stock'))
AND c.fieldid = 9
AND d.fieldid = 5
AND (a.productid = b.productid)
AND (b.productid = c.productid)
這是不明確的,是查詢工作還是你的嘗試? – Mihai 2014-09-30 21:11:41
您是否嚴格需要使用LOWER()?它會渲染任何無用的索引,並可能減慢查詢速度。除非二進制字符串'='不管怎樣都是不區分大小寫的。 – Arth 2014-09-30 21:25:38
@Mhai;通過包含與代碼不同的代碼,我已經使問題更加清楚了,該代碼不在 @Arth;是。員工手動輸入庫存地點,因此它可能是G庫存,零售,庫存,庫存,零售等。 – 2014-09-30 21:38:34