Sql query question finding out table name from sql query - mysql

I am testing one of my project it's opencart
Basically i wanna know my table name for sure for example oc20_product and oc20_manufacturer are table names aren't them ? and this the others actual columns ?
What is my table and column name for sure ?
Thanks in advance
Notice:
Error: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near '%' AND p.status = 1 GROUP BY m.manufacturer_id ORDER BY m.name
ASC' at line 4 Error No: 1064
SELECT m.manufacturer_id, m.name, COUNT(p.product_id) AS products_total
FROM oc20_product p
LEFT JOIN oc20_product_description pd
ON pd.product_id = p.product_id
LEFT JOIN oc20_manufacturer m
ON m.manufacturer_id = p.manufacturer_id
WHERE pd.name LIKE '%mycard'%' AND p.status = 1
GROUP BY m.manufacturer_id
ORDER BY m.name ASC in

wrong quote in like pattern you could use a concat for an easy pattern format
SELECT m.manufacturer_id
, m.name
, COUNT(p.product_id) AS products_total
FROM oc20_product p
LEFT JOIN oc20_product_description pd ON pd.product_id = p.product_id
LEFT JOIN oc20_manufacturer m ON m.manufacturer_id = p.manufacturer_id
WHERE pd.name LIKE concat('%',mycard,'%') AND p.status = 1
GROUP BY m.manufacturer_id, m.name
ORDER BY m.name ASC

Related

Error in JOIN while using Common Table Expresion

I am using the expression below to find out which 'resource' type customers have 'work_resource' that are active.
WITH cte_ss AS (SELECT wr.user_id
FROM work w
JOIN work_resource wr ON wr.work_id = w.id
WHERE wr.work_resource_status_type_code = 'active'
),
SELECT u.uuid
FROM user u
JOIN company c ON c.id = u.company_id
LEFT JOIN cte_ss on cte_ss.user_id = u.id
AND c.customer_type = 'resource'
White trying to run this, I get the following error
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT u.uuid
FROM user u
JOIN company c ON c.id = u.company_id
LEFT JOIN cte_ss' at line 6
Both the individual queries (without the LEFT JOIN) are working, so not sure what I am doing wrong here
A cte would look like this
But as i don't know nothing about your tables, you have to figure it out yourself
WITH cte_ss AS (
SELECT
user_id
FROM work w
JOIN work_resource wr ON wr.work_id = w.id
WHERE wr.work_resource_status_type_code = 'active'
)
SELECT u.uuid
FROM user u
JOIN company c ON c.id = u.company_id
LEFT JOIN cte_ss on cte_ss.user_id = u.id
AND c.customer_type = 'resource'

When i add product to woocommerce 4.4.1 error message come out

When i try to add product to wordpresss -> woocomerce, there is an error message:
WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') OR p.product_id = 30582 OR g.apply_to = 'all' GROUP BY g.id ORDER BY g' at line 5]
SELECT
g.*
, GROUP_CONCAT(DISTINCT c.category_id) as `categories`
, GROUP_CONCAT(DISTINCT p.product_id) as `products`
FROM wpav_za_groups as g
LEFT JOIN wpav_za_categories_to_groups as c ON c.group_id = g.id
LEFT JOIN wpav_za_products_to_groups as p ON p.group_id = g.id
WHERE
c.category_id IN ()
OR p.product_id = 30582
OR g.apply_to = 'all'
GROUP BY g.id
ORDER BY g.priority ASC
Can you help to check what is the issue about?
You are missing text or data in the IN clause
c.category_id IN ('test1','teswt2')
Instead of text1 and test2 you have to enter your own text or data
SELECT
g.*
, GROUP_CONCAT(DISTINCT c.category_id) as `categories`
, GROUP_CONCAT(DISTINCT p.product_id) as `products`
FROM wpav_za_groups as g
LEFT JOIN wpav_za_categories_to_groups as c ON c.group_id = g.id
LEFT JOIN wpav_za_products_to_groups as p ON p.group_id = g.id
WHERE
c.category_id IN ('test1','teswt2')
OR p.product_id = 30582
OR g.apply_to = 'all'
GROUP BY g.id
ORDER BY g.priority ASC

SELECT query IF CONDITION

I have one problem with my SELECT query in my blog page.
I want comment count of each blog when comment status=1.
I am apply following query..
SELECT CONCAT(u.first_name," ",u.last_name) name, r.*,
IF(c.status=1,COUNT(c.id)) as comment
FROM users u
RIGHT JOIN resources r ON u.id = r.created_by
LEFT JOIN comments c ON r.id = c.resource_id
WHERE r.type = 1
AND r.status=1
GROUP BY r.id
ORDER BY r.created_date DESC
LIMIT 0,5
but it giving SYNTAX ERROR..
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your
SQL syntax; check the manual that corresponds to your MariaDB server version for the right
syntax to use near ') as comment FROM users u RIGHT JOIN resources r ON u.id = r.created_by
LEFT JOI' at line 1
Please tell me where I am wrong.
Thanks
If statement contains three expressions. First, the expression, second the value returned if condition is true and third if condition is false so you are missing the third expression.
Try the below code
SELECT CONCAT(u.first_name," ",u.last_name) name,r.*,IF(c.status=1,COUNT(c.id), 0) as comment
FROM users u RIGHT JOIN resources r ON u.id = r.created_by
LEFT JOIN comments c ON r.id = c.resource_id
WHERE r.type = 1
AND r.status=1
GROUP BY r.id
ORDER BY r.created_date DESC
LIMIT 0,5
Select concat(u.first_name," ",u.last_name) name,r.*,
case when c.status=1 then COUNT(c.id) end as comment
FROM users u RIGHT JOIN resources r ON u.id = r.created_by
LEFT JOIN comments c ON r.id = c.resource_id
WHERE r.type = 1
AND r.status=1
GROUP BY r.id
ORDER BY r.created_date DESC
LIMIT 0,5
https://www.w3schools.com/sql/func_mysql_case.asp
if function requires 3 parameters to be passed to it. IF(expression ,expr_true, expr_false) is how it should be used.
Have a look at https://www.w3resource.com/mysql/control-flow-functions/if-function.php

issue with sql query to count by groupby

I have the following query:
SELECT s.username FROM `instagram_shop` s
INNER JOIN `instagram_shop_picture` p
ON s.id = p.shop_id
WHERE s.`deletedAt` IS NULL
HAVING COUNT(p.id) = 0
GROUP BY s.id
and I keep getting the following error:
You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'GROUP BY s.id LIMIT 0, 30' at line 6
What is the issue here?
Move the HAVING clause after the GROUP BY clause.
MySQL is very specific about the order of keywords/clauses in a SELECT statement
Reference: 13.2.9 SELECT Syntax https://dev.mysql.com/doc/refman/5.6/en/select.html
Try the below one :
there is an syntax issue with your query,
Having should follow after GROUP BY caluse.
Also the columns which you mention in your GROUP BY
clause should be present in the SELECT list.
SELECT s.id,s.username FROM `instagram_shop` s
INNER JOIN `instagram_shop_picture` p
ON s.id = p.shop_id
WHERE s.deletedAt IS NULL
GROUP BY s.id,s.username
HAVING COUNT(s.id) = 0

MYSQL query using Left Join and Where IN clause

I have three tables A B C and i'm trying to retrieve information from all three.
A has the columnns userid avatar username and B has the column postid, dateshared and C has the column commenter postid datecommented.
I'm trying to run the query
Select C.comment, C.commenter, C.datecommented, B.postid, B.dateshared A.username A.avatar from B Left Join C Left join A on C.postid = B.postid AND A.userid = C.commenter where B.postid IN ('1','2','3') order by C.dateshared desc
but it gives the following error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where B.postid IN ('1', '2', '3') order by C.dateshared '
Can anyone point out what I'm doing wrong or suggest how to go about it?
Each LEFT JOIN requires its own ON condition:
SELECT C.comment, C.commenter, C.datecommented, B.postid, B.dateshared, A.username A.avatar
FROM B
LEFT JOIN
C
ON C.postid = B.postid
LEFT JOIN
A
ON A.userid = C.commenter
WHERE B.postid IN ('1','2','3')
ORDER BY
C.dateshared desc
This should work for you, your query had some syntax errors:
Select C.comment,C.commenter,C.datecommented,B.postid,B.dateshared,A.username,A.avatar
from B
Left Join C on C.postid = B.postid
Left join A on A.userid = C.commenter
where B.postid IN ('1','2','3')
order by C.dateshared desc