One possible solutions is use Queries in the joins instead of tables.
so the query would look something like
//read products with thumbnail and sku
SELECT products.*, skus.sku, thumbs.thumbnail
FROM `wp_posts` as products
LEFT JOIN (
SELECT posts2.ID, pm1.meta_value as sku
FROM `wp_posts` as posts2
LEFT JOIN `sf_postmeta` as pm1 ON posts2.ID = pm1.post_id
WHERE pm1.meta_key = '_sku'
) as skus ON products.ID = skus.ID
LEFT JOIN (
SELECT posts3.ID, p1.guid as thumbnail
FROM `wp_posts` as posts3
LEFT JOIN `sf_postmeta` as pm2 ON posts3.ID = pm2.post_id
LEFT JOIN `sf_posts` as posts4 ON pm2.meta_value = posts4.ID
WHERE pm2.meta_key = '_thumbnail_id'
) as thumbs ON products.ID = thumbs.ID
WHERE products.post_type="product";
Related Posts:
- How to use $wpdb to delete in a custom table
- get_results on large datasets
- Is there a (better) way to access $wpdb results?
- Using $wpdb generates DB error
- How do you use prepare when asking for a list of id’s
- how to execute different sql query in non-sanitized $wpdb->get_results function
- WPDB update row with != in where clause
- How to update records using $wpdb?
- Need help writing a $wpdb query
- show badge with count for pending items in custom post type
- WP Sql query multiple where clause
- WordPress SQL query – returning ‘true’ ‘false’ or ‘null’
- Modify the structure of data returned by $wpdb
- Syntax for $wpdb->prepare when searching in two columns
- Confused by $wpdb->prepare
- How to display user_nicename and usermeta values by custom query in WordPress?
- Optimizing WordPress Queries – Removing Group By ID
- How can I combine one field using wpdb and group by?
- $wpdb->prepare with ON DUPLICATE KEY UPDATE
- how to use $wpdb->prepare to update a custom table
- WPDB Placeholders and second argument for prepared statements
- Increment integer field in database when WHERE needs to be dynamic [closed]
- Custom SQL query ORDER BY term_order
- Custom $wpdb returns unexpected time based results
- wpdb->get_row is selecting the variable as a column name
- CREATE TABLE with dbDelta does not create table
- $wpdb query outputs php code instead of executing it
- wpdb query not working
- WordPress wpdb->insert returns int(0) => doesn’t insert anything, no errors!
- WPDB SQL Ignore `post_status` Parameter
- how to list all post that are in the custom taxonomy using $wpdb
- WPDB SQL query SELECT from category
- How to use WHERE NOT EXISTS query to avoid duplicate entry using $wpdb to save in custom table?
- Creating an Angular factory from custom database table
- wpdb->update update the entire table instead of one row
- How do I update post based on meta_key in another table?
- How to set up prepared query using IN statement
- Custom database query to validate data
- Alter the main search query to search posts by coauthor user name
- Creates only one table and not the other
- Protect custom form from SQL injection
- looking for a way to allow users to backup the plugin db data(save as)
- SQL Query to select post title & post ID from a particular category
- Get comments after specific date
- query using wpdb in wordpress gets me no result
- Get count of rows based if column exists in two different tables
- query_vars doesn’t return query string (trying to get data from $wpdb)
- How do you properly prepare a %LIKE% SQL statement?
- How to parse row results from $wpdb -> get_results
- $wpdb->insert() and Values for Datetime Columns?
- Change post status based on meta value
- Speed optimization of $wpdb->get_results
- $wpdb is get_results escaped
- wpdb prepare: passing varible number of fields as second argument
- Wpdb query for comment meta for current post
- How to Modify this $wpdb query to accept an array of post statuses
- WPDB Update using Conditional Arrays
- How to correctly pass values to wpdb->prepare()?
- $wpdb->get_results returns empty but value exists
- Problem displaying inserted form
- Get published posts and pages?
- How to get a value-only flat array from $wpdb->get_results when selecting a single column, without foreach()?
- How to Instantiate wpdb Object in New File
- How do you build a wpdb query dynamically?
- Would this WPDB setup result in potential race conditions?
- How to update a row in a table in WordPress
- External DB Connection [closed]
- $wpdb->insert() does not Insert record in a table
- WordPress SQL Issue not returning correct reselts
- WordPress db prepare
- $wpdb->prepare with LIKE returning blank array instead of rows
- $wpdb update query in plugin only updating one column
- how to get db values without using an loop with wpdb->get_results()
- Save data from a checkbox to a wpdb array
- WP-PostRatings: list current user’s rated posts
- WPDB Join with custom table
- $wpdb->prepare affecting the query?
- Getting values from wpdb
- Why is this $wpdb query looping 5 times?
- wpdb query not returning results containing single quotes
- duplicate entries in database while using save_post or wp_insert_post
- Unknown column ‘siteurl’ in ‘where clause’ WPDB outside
- Creating multiple tables with Plugin
- sort title descending with title with number
- Escaping a WPDB Object in One Shot
- Correct and secure way to access a custom SQL database in a custom PHP template file
- Create a stored procedure on plugin activation
- Get last element from wpdb as a string
- $wpdb query for price in custom field value
- Update all fields of table with ON DUPLICATE KEY UPDATE command
- WordPress – wpdb query does not list same result as sql query
- What is the best practice to initialise $wpdb by loading wp-load.php?
- $wpdb->get_results in not an array
- How to make iteration on wpdb->update or query statement?
- Querying multiple meta_keys in WordPress SQL query
- Custom WordPress SQL Query 4 posts per custom taxonomy
- Jeditable Plugin working as it should – scope issue?
- wpdb LIKE request shows all database data
- How do I change the datetime format from ( ‘y-m-d’ ) to ( ‘d m y’ ) [closed]
- $wpdb:insert, more arguements in $format array than in $data